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:11 UTC

[25/37] tomee git commit: ensuring classloader is right when destroying sessions

ensuring classloader is right when destroying sessions


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

Branch: refs/heads/master
Commit: a19d26e0f358cd3efbcf3abc3c124e41d34ee22b
Parents: ceedb85
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Thu May 7 09:46:46 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Thu May 7 09:46:46 2015 +0200

----------------------------------------------------------------------
 .../server/httpd/session/SessionManager.java    | 20 +++++++++++++-------
 tck/cdi-embedded/src/test/resources/failing.xml |  2 +-
 2 files changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/a19d26e0/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/session/SessionManager.java
----------------------------------------------------------------------
diff --git a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/session/SessionManager.java b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/session/SessionManager.java
index 2284421..378ea9b 100644
--- a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/session/SessionManager.java
+++ b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/session/SessionManager.java
@@ -48,14 +48,20 @@ public class SessionManager {
             return;
         }
 
-        final WebBeansContext wbc = app.getWebBeansContext();
-        final Iterator<SessionWrapper> iterator = sessions.values().iterator();
-        while (iterator.hasNext()) {
-            final SessionWrapper next = iterator.next();
-            if (next.app == app) {
-                doDestroy(next);
-                iterator.remove();
+        final Thread tc = Thread.currentThread();
+        final ClassLoader tccl = tc.getContextClassLoader();
+        tc.setContextClassLoader(app.getClassLoader());
+        try {
+            final Iterator<SessionWrapper> iterator = sessions.values().iterator();
+            while (iterator.hasNext()) {
+                final SessionWrapper next = iterator.next();
+                if (next.app == app) {
+                    doDestroy(next);
+                    iterator.remove();
+                }
             }
+        } finally {
+            tc.setContextClassLoader(tccl);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/a19d26e0/tck/cdi-embedded/src/test/resources/failing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-embedded/src/test/resources/failing.xml b/tck/cdi-embedded/src/test/resources/failing.xml
index 3a10892..d995504 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -32,7 +32,7 @@
     -Dopenejb.cdi.conversation.http.use-get-parameter=true
     -->
     <classes>
-      <class name="org.jboss.cdi.tck.tests.context.session.listener.shutdown.SessionContextListenerShutdownTest" />
+      <class name="org.jboss.cdi.tck.tests.deployment.shutdown.ApplicationShutdownLifecycleTest" />
     </classes>
   </test>
 </suite>