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);
}