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 2011/03/12 00:47:14 UTC

svn commit: r1080801 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java

Author: struberg
Date: Fri Mar 11 23:47:14 2011
New Revision: 1080801

URL: http://svn.apache.org/viewvc?rev=1080801&view=rev
Log:
OWB-503 cache isBeanSerializable information

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java?rev=1080801&r1=1080800&r2=1080801&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java Fri Mar 11 23:47:14 2011
@@ -159,16 +159,21 @@ public class ManagedBean<T> extends Abst
     
     public boolean isPassivationCapable()
     {
+        if (isPassivationCapable != null)
+        {
+            return isPassivationCapable.booleanValue();
+        }
         if(Serializable.class.isAssignableFrom(this.returnType))
         {
             for(Decorator<?> dec : this.decorators)
             {
                 if(dec.getBeanClass() != null && !Serializable.class.isAssignableFrom(dec.getBeanClass()))
                 {
+                    isPassivationCapable = Boolean.FALSE;
                     return false;
                 }
             }
-            
+
             for(InterceptorData interceptorData : this.interceptorStack)
             {
                 if(interceptorData.isDefinedInInterceptorClass())
@@ -176,16 +181,22 @@ public class ManagedBean<T> extends Abst
                     Class<?> interceptor = interceptorData.getInterceptorClass();
                     if(!Serializable.class.isAssignableFrom(interceptor))
                     {
+                        isPassivationCapable = Boolean.FALSE;
                         return false;
-                    }                    
+                    }
                 }
             }
-            
+
+            isPassivationCapable = Boolean.TRUE;
             return true;
         }
-        
+
+        isPassivationCapable = Boolean.FALSE;
         return false;
     }
+
+    /** cache previously calculated result */
+    private Boolean isPassivationCapable = null;
     
     public void setIsAbstractDecorator(boolean flag)
     {