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 2012/12/05 12:57:25 UTC
svn commit: r1417373 -
/openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/AbstractProducer.java
Author: struberg
Date: Wed Dec 5 11:57:25 2012
New Revision: 1417373
URL: http://svn.apache.org/viewvc?rev=1417373&view=rev
Log:
OWB-734 fix edge case which happens if someone cleans up contexts from other threads
Modified:
openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/AbstractProducer.java
Modified: openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/AbstractProducer.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/AbstractProducer.java?rev=1417373&r1=1417372&r2=1417373&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/AbstractProducer.java (original)
+++ openwebbeans/branches/owb_1.1.x/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/AbstractProducer.java Wed Dec 5 11:57:25 2012
@@ -20,6 +20,7 @@ package org.apache.webbeans.portable.cre
import java.util.Set;
+import javax.enterprise.context.ContextNotActiveException;
import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.BeanManager;
@@ -99,10 +100,19 @@ public abstract class AbstractProducer<T
{
CreationalContext<T> cc = null;
BeanManager bm = bean.getWebBeansContext().getBeanManagerImpl();
- Context ctx = bm.getContext(bean.getScope());
- if (ctx instanceof AbstractContext)
+ try
{
- cc = ((AbstractContext) ctx).getCreationalContext(bean);
+ Context ctx = bm.getContext(bean.getScope());
+ if (ctx instanceof AbstractContext)
+ {
+ cc = ((AbstractContext) ctx).getCreationalContext(bean);
+ }
+ }
+ catch (ContextNotActiveException ccne)
+ {
+ // another dirty workaround for a quirksmode.
+ // This happens if contexts from other threads get bulk cleaned up.
+ // It's at least not worse as it was before ;)
}
if (cc == null)