You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/12/10 08:41:06 UTC

tomee git commit: OPENEJB-2109 don't leave stale ThreadContext with @Async, thanks chunlinyao

Repository: tomee
Updated Branches:
  refs/heads/develop 25abfa3c8 -> 8e24d910d


OPENEJB-2109 don't leave stale ThreadContext with @Async, thanks chunlinyao


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

Branch: refs/heads/develop
Commit: 8e24d910d9d500e7f5e8496292db9904ca1d1ce4
Parents: 25abfa3
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Wed Dec 10 08:40:41 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Wed Dec 10 08:40:41 2014 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/openejb/core/ThreadContext.java    | 5 +++--
 .../src/main/java/org/apache/openejb/threads/task/CUTask.java   | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/8e24d910/container/openejb-core/src/main/java/org/apache/openejb/core/ThreadContext.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ThreadContext.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ThreadContext.java
index 89062f2..b75c145 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/ThreadContext.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ThreadContext.java
@@ -44,8 +44,9 @@ public class ThreadContext {
         }
 
         // set the thread context class loader
-        newContext.oldClassLoader = Thread.currentThread().getContextClassLoader();
-        Thread.currentThread().setContextClassLoader(newContext.beanContext.getClassLoader());
+        final Thread thread = Thread.currentThread();
+        newContext.oldClassLoader = thread.getContextClassLoader();
+        thread.setContextClassLoader(newContext.beanContext.getClassLoader());
 
         // update thread local
         final ThreadContext oldContext = threadStorage.get();

http://git-wip-us.apache.org/repos/asf/tomee/blob/8e24d910/container/openejb-core/src/main/java/org/apache/openejb/threads/task/CUTask.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/threads/task/CUTask.java b/container/openejb-core/src/main/java/org/apache/openejb/threads/task/CUTask.java
index 2bb43f5..c920044 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/threads/task/CUTask.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/threads/task/CUTask.java
@@ -137,7 +137,7 @@ public abstract class CUTask<T> extends ManagedTaskListenerTask {
             }
 
             final ThreadContext oldCtx;
-            if (threadContext != null) {
+            if (threadContext != null) { // point A
                 final ThreadContext newContext = new ThreadContext(threadContext);
                 newContext.set(Context.class, this);
                 if (securityContext != null) {
@@ -158,7 +158,7 @@ public abstract class CUTask<T> extends ManagedTaskListenerTask {
         }
 
         public void exit() {
-            if (currentContext.threadContext != null) {
+            if (threadContext != null) { // ensure we use the same condition as point A, see OPENEJB-2109
                 ThreadContext.exit(currentContext.threadContext);
             }