You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2010/08/11 23:14:17 UTC
svn commit: r984584 - in
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
context/AbstractContext.java corespi/se/DefaultContextsService.java
Author: struberg
Date: Wed Aug 11 21:14:17 2010
New Revision: 984584
URL: http://svn.apache.org/viewvc?rev=984584&view=rev
Log:
OWB-436 quick fix for our thread safety problem.
This is just intended as safe solution and can be improved heavily!
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/se/DefaultContextsService.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java?rev=984584&r1=984583&r2=984584&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java Wed Aug 11 21:14:17 2010
@@ -195,7 +195,7 @@ public abstract class AbstractContext im
* {@inheritDoc}
*/
@SuppressWarnings("unchecked")
- protected <T> T getInstance(Contextual<T> contextual, CreationalContext<T> creationalContext)
+ protected synchronized <T> T getInstance(Contextual<T> contextual, CreationalContext<T> creationalContext)
{
T instance = null;
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/se/DefaultContextsService.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/se/DefaultContextsService.java?rev=984584&r1=984583&r2=984584&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/se/DefaultContextsService.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/se/DefaultContextsService.java Wed Aug 11 21:14:17 2010
@@ -43,7 +43,7 @@ public class DefaultContextsService exte
private static ThreadLocal<SessionContext> sessionContext = null;
- private static ThreadLocal<ApplicationContext> applicationContext = null;
+ private ApplicationContext applicationContext = null;
private static ThreadLocal<ConversationContext> conversationContext = null;
@@ -56,7 +56,6 @@ public class DefaultContextsService exte
{
requestContext = new ThreadLocal<RequestContext>();
sessionContext = new ThreadLocal<SessionContext>();
- applicationContext = new ThreadLocal<ApplicationContext>();
conversationContext = new ThreadLocal<ConversationContext>();
dependentContext = new ThreadLocal<DependentContext>();
singletonContext = new ThreadLocal<SingletonContext>();
@@ -209,14 +208,12 @@ public class DefaultContextsService exte
{
requestContext.set(null);
sessionContext.set(null);
- applicationContext.set(null);
conversationContext.set(null);
dependentContext.set(null);
singletonContext.set(null);
requestContext.remove();
sessionContext.remove();
- applicationContext.remove();
conversationContext.remove();
dependentContext.remove();
singletonContext.remove();
@@ -226,7 +223,7 @@ public class DefaultContextsService exte
private Context getCurrentApplicationContext()
{
- return applicationContext.get();
+ return applicationContext;
}
@@ -270,7 +267,7 @@ public class DefaultContextsService exte
ApplicationContext ctx = new ApplicationContext();
ctx.setActive(true);
- applicationContext.set(ctx);
+ applicationContext = ctx;
}
@@ -315,11 +312,8 @@ public class DefaultContextsService exte
private void stopApplicationContext(Object object)
{
- if(applicationContext.get() != null)
- {
- applicationContext.get().destroy();
- }
-
+ applicationContext.destroy();
+ applicationContext = null;
}