You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by st...@apache.org on 2015/05/17 13:21:03 UTC

[17/37] tomee git commit: TOMEE-1576 remove cached Session from HttpRequestImpl

TOMEE-1576 remove cached Session from HttpRequestImpl


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/6c35e5b5
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/6c35e5b5
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/6c35e5b5

Branch: refs/heads/master
Commit: 6c35e5b544d8cdef97bb15b3d6403af5a89b6db4
Parents: 58b9bc0
Author: Mark Struberg <st...@apache.org>
Authored: Tue May 5 08:51:41 2015 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Tue May 5 08:51:41 2015 +0200

----------------------------------------------------------------------
 .../openejb/server/httpd/HttpRequestImpl.java      | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/6c35e5b5/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
----------------------------------------------------------------------
diff --git a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
index eaf420f..bbe1a16 100644
--- a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
+++ b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
@@ -901,7 +901,20 @@ public class HttpRequestImpl implements HttpRequest {
                 session = previous.session;
             }
         }
-        return session;
+
+        if (session != null) {
+            return new ServletSessionAdapter(session) {
+                @Override
+                public void invalidate() {
+                    super.invalidate();
+
+                    // after invalidating the session we need to remove the reference to the cached Session
+                    HttpRequestImpl.this.session = null;
+                }
+            };
+        }
+
+        return null;
     }
 
     protected URI getSocketURI() {
@@ -1212,7 +1225,7 @@ public class HttpRequestImpl implements HttpRequest {
         }
     }
 
-    protected static class SessionInvalidateListener extends ServletSessionAdapter {
+    protected class SessionInvalidateListener extends ServletSessionAdapter {
         private final BeginWebBeansListener listener;
 
         public SessionInvalidateListener(final javax.servlet.http.HttpSession session, final BeginWebBeansListener end) {