summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/trunk/modules/core
diff options
context:
space:
mode:
authornash <nash@13f79535-47bb-0310-9956-ffa450edef68>2010-11-09 15:16:26 +0000
committernash <nash@13f79535-47bb-0310-9956-ffa450edef68>2010-11-09 15:16:26 +0000
commitb0867f563dc8c44e0c7b1df72c9da42041a5ab5b (patch)
tree78d8c380edf60a42b49951188deafd7008ca482b /sca-java-1.x/trunk/modules/core
parent4f47a822cec0e9870f745990fdca0d06b50cc380 (diff)
TUSCANY-3770: Remove thread message context on completion of each request
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1033012 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-1.x/trunk/modules/core')
-rw-r--r--sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ThreadMessageContext.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ThreadMessageContext.java b/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ThreadMessageContext.java
index dd3a4f9ac3..becf5f9295 100644
--- a/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ThreadMessageContext.java
+++ b/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ThreadMessageContext.java
@@ -28,11 +28,12 @@ import org.apache.tuscany.sca.invocation.Message;
*/
public final class ThreadMessageContext {
+ // TUSCANY-3770: Used as a marker for detecting when thread context information can be removed
+ private static final Message msg = new MessageImpl();
+
private static final ThreadLocal<Message> CONTEXT = new ThreadLocal<Message>() {
@Override
protected synchronized Message initialValue() {
- Message msg = new MessageImpl();
- msg.setFrom(new EndpointReferenceImpl("/"));
return msg;
}
};
@@ -58,6 +59,12 @@ public final class ThreadMessageContext {
public static Message setMessageContext(Message context) {
Message old = CONTEXT.get();
CONTEXT.set(context);
+
+ // TUSCANY-3770: Remove thread context information when the request invocation has completed
+ if (context == msg) {
+ CONTEXT.remove();
+ }
+
return old;
}
@@ -70,11 +77,13 @@ public final class ThreadMessageContext {
return CONTEXT.get();
}
- /**
+ // TUSCANY-3770: This method is no longer needed, as thread context information is removed implicitly
+ /*
* Removes and state from the current thread to ensure that
* any associated classloaders can be GCd
- */
+ *
public static void removeMessageContext() {
CONTEXT.remove();
}
+ */
}