summaryrefslogtreecommitdiff
path: root/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/SessionListener.java
diff options
context:
space:
mode:
authormcentner <mcentner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4>2010-07-28 09:05:04 +0000
committermcentner <mcentner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4>2010-07-28 09:05:04 +0000
commitaf24a20257f4958ef5335d471a7fe2c93f475a35 (patch)
treef7f4b2da3f123433d78a1c950d1150b9adf60356 /BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/SessionListener.java
parentc84ee7bc9459bf4966144d29efc4e91b6497a28e (diff)
downloadmocca-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.java11
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());
}