openwebbeans-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From strub...@apache.org
Subject svn commit: r927155 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept: ApplicationScopedBeanIntereptorHandler.java NormalScopedBeanInterceptorHandler.java
Date Wed, 24 Mar 2010 18:57:45 GMT
Author: struberg
Date: Wed Mar 24 18:57:45 2010
New Revision: 927155

URL: http://svn.apache.org/viewvc?rev=927155&view=rev
Log:
OWB-329 fix serialization and CreationalContext issues in NormalScoped interceptors

We can easily drop the CreationalContext in the NormalScoped interceptors, because
we only need it if the contextual instance doesn't already exist. In this case,
the new @NormalScoped contextual instance needs to get a new CreationalContext anyway!

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java?rev=927155&r1=927154&r2=927155&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java
(original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ApplicationScopedBeanIntereptorHandler.java
Wed Mar 24 18:57:45 2010
@@ -37,7 +37,7 @@ public class ApplicationScopedBeanIntere
     private static final long serialVersionUID = 1L;
 
     /**Cached bean instance*/
-    private Object cachedInstance = null;
+    private transient Object cachedInstance = null;
     
     /**
      * Creates a new handler.

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java?rev=927155&r1=927154&r2=927155&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
(original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
Wed Mar 24 18:57:45 2010
@@ -26,7 +26,7 @@ import javax.enterprise.context.spi.Cont
 import javax.enterprise.context.spi.CreationalContext;
 
 import org.apache.webbeans.component.OwbBean;
-import org.apache.webbeans.context.AbstractContext;
+import org.apache.webbeans.context.creational.CreationalContextFactory;
 import org.apache.webbeans.context.creational.CreationalContextImpl;
 
 /**
@@ -41,7 +41,7 @@ public class NormalScopedBeanInterceptor
     private static final long serialVersionUID = 1L;
     
     /**Creational context*/
-    private CreationalContext<?> creationalContext;
+    private transient CreationalContext<?> creationalContext;
 
     /**
      * Creates a new bean instance
@@ -93,17 +93,21 @@ public class NormalScopedBeanInterceptor
         //Context of the bean
         Context webbeansContext = getBeanManager().getContext(bean.getScope());
         
-        //Already saved in context
-        if((webbeansInstance=webbeansContext.get(bean)) != null)
+        //Already saved in context?
+        webbeansInstance=webbeansContext.get(bean);
+        if (webbeansInstance != null)
         {
-            CreationalContext<Object> creational = ((AbstractContext)webbeansContext).getCreationalContext(bean);
-            if (creational != null)
-            {
-                this.creationalContext = creational;
-            }
+            // voila, we are finished if we found an existing contextual instance
+            return webbeansInstance;
         }
-
-        //create a new instance
+        
+        if (creationalContext == null)
+        {
+            // if there was no CreationalContext set from external, we create a new one
+            creationalContext = CreationalContextFactory.getInstance().getCreationalContext(bean);
+        }
+        
+        // finally, we create a new contextual instance
         webbeansInstance = webbeansContext.get((Contextual<Object>)this.bean, (CreationalContext<Object>)
creationalContext);
         
         return webbeansInstance;



Mime
View raw message