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 2013/01/13 13:11:22 UTC

svn commit: r1432597 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java

Author: struberg
Date: Sun Jan 13 12:11:22 2013
New Revision: 1432597

URL: http://svn.apache.org/viewvc?rev=1432597&view=rev
Log:
OWB-754 fix PassivationCapable rules

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=1432597&r1=1432596&r2=1432597&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java Sun Jan 13 12:11:22 2013
@@ -51,6 +51,7 @@ import javax.enterprise.inject.spi.Injec
 import javax.enterprise.inject.spi.InterceptionType;
 import javax.enterprise.inject.spi.Interceptor;
 import javax.enterprise.inject.spi.ObserverMethod;
+import javax.enterprise.inject.spi.PassivationCapable;
 import javax.enterprise.inject.spi.Producer;
 import javax.inject.Scope;
 import javax.interceptor.InterceptorBinding;
@@ -358,9 +359,18 @@ public class BeanManagerImpl implements 
      * @param bean
      * @throws DefinitionException if the id is not unique.
      */
-    public void addPassivationInfo(OwbBean<?> bean) throws DefinitionException
+    public void addPassivationInfo(Bean<?> bean) throws DefinitionException
     {
-        String id = bean.getId();
+        String id = null;
+        if (bean instanceof OwbBean<?>)
+        {
+            id = ((OwbBean) bean).getId();
+        }
+        if (id == null && bean instanceof PassivationCapable)
+        {
+            id = ((PassivationCapable) bean).getId();
+        }
+
         if(id != null)
         {
             Bean<?> oldBean = passivationBeans.putIfAbsent(id, bean);
@@ -368,8 +378,8 @@ public class BeanManagerImpl implements 
             {
                 throw new DuplicateDefinitionException("PassivationCapable bean id is not unique: " + id + " bean:" + bean);
             }
-            
-        }        
+
+        }
     }