diff options
author | mcentner <mcentner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2010-07-28 09:05:04 +0000 |
---|---|---|
committer | mcentner <mcentner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2010-07-28 09:05:04 +0000 |
commit | af24a20257f4958ef5335d471a7fe2c93f475a35 (patch) | |
tree | f7f4b2da3f123433d78a1c950d1150b9adf60356 /BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/SessionListener.java | |
parent | c84ee7bc9459bf4966144d29efc4e91b6497a28e (diff) | |
download | mocca-af24a20257f4958ef5335d471a7fe2c93f475a35.tar.gz mocca-af24a20257f4958ef5335d471a7fe2c93f475a35.tar.bz2 mocca-af24a20257f4958ef5335d471a7fe2c93f475a35.zip |
Resolved issue [#MOCCA-745] (Two simultaneous requests within the same session cause failure in both requests).
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@790 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/SessionListener.java')
-rw-r--r-- | BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/SessionListener.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/SessionListener.java b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/SessionListener.java index e7f05862..58e9c861 100644 --- a/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/SessionListener.java +++ b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/SessionListener.java @@ -23,6 +23,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import at.gv.egiz.bku.binding.BindingProcessorManager; +import at.gv.egiz.bku.binding.Id; import at.gv.egiz.bku.binding.IdFactory; /** @@ -36,12 +37,20 @@ public class SessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent event) { log.info("Session {} created.", event.getSession().getId()); + event.getSession().setAttribute(TransactionId.TRANSACTION_INDEX, new TransactionId()); } @Override public void sessionDestroyed(HttpSessionEvent event) { BindingProcessorManager manager = (BindingProcessorManager) event.getSession().getServletContext().getAttribute("bindingProcessorManager"); - manager.removeBindingProcessor(IdFactory.getInstance().createId(event.getSession().getId())); + TransactionId tidx = (TransactionId) event.getSession().getAttribute(TransactionId.TRANSACTION_INDEX); + if (tidx != null) { + IdFactory idFactory = IdFactory.getInstance(); + for (int i = 0; i <= tidx.get(); i++) { + Id id = idFactory.createId(event.getSession().getId() + "-" + i); + manager.removeBindingProcessor(id); + } + } log.info("Session {} destroyed.", event.getSession().getId()); } |