Author: struberg
Date: Wed Mar  9 11:55:07 2011
New Revision: 1079762

URL: http://svn.apache.org/viewvc?rev=1079762&view=rev
Log:
OWB-542 fixed by not adding the Dependent bean in the ProducerMethodBean

This partly reverts r1079461 and omits the addDependent call in the
(hopefully) right place. The idea is to always add @Dependent beans
and not add all other scopes at all.

Modified:
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
    
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/InjectedIntoBean.java
    
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/IntermediateDependentBean.java

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java?rev=1079762&r1=1079761&r2=1079762&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
 Wed Mar  9 11:55:07 2011
@@ -203,23 +203,15 @@ public class ProducerMethodBean<T> exten
             ThreadLocal<Object> injectionTargetInstance = 
AbstractInjectable.instanceUnderInjection;
             if(isInjectionToAnotherBean)
             {
-                if(oldDependents == null)
-                {
-                    if (injectionTargetInstance != null && 
injectionTargetInstance.get() != null)
-                    {
-                        ((CreationalContextImpl)creationalContext).
-                                addDependent(injectionTargetInstance.get(), 
this , instance);
-                    }
-                }
-                else
+                if(oldDependents != null)
                 {
                     DependentCreationalContext<Object> dependentCreational =
                             new 
DependentCreationalContext<Object>((Contextual<Object>)this);
                     dependentCreational.setInstance(instance);
                     dependentCreational.setDependentType(DependentType.BEAN);
 
-                    oldDependents.add(dependentCreational);                    
-                }                
+                    oldDependents.add(dependentCreational);
+                }
             }
             else
             {
@@ -278,6 +270,7 @@ public class ProducerMethodBean<T> exten
         {
             if (getParent().getScope().equals(Dependent.class))
             {
+                // this handles dependent scoped producer methods and fields
                 destroyBean(getParent(), parentInstance, parentCreational);
             }
             

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=1079762&r1=1079761&r2=1079762&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
 Wed Mar  9 11:55:07 2011
@@ -769,7 +769,7 @@ public class BeanManagerImpl implements 
         {        
             //Using owner creational context
             //Dependents use parent creational context
-            instance = getReference(injectedBean, injectionPoint.getType(), 
ownerCreationalContext);            
+            instance = getReference(injectedBean, injectionPoint.getType(), 
ownerCreationalContext);
         }
         
         else

Modified: 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/InjectedIntoBean.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/InjectedIntoBean.java?rev=1079762&r1=1079761&r2=1079762&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/InjectedIntoBean.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/InjectedIntoBean.java
 Wed Mar  9 11:55:07 2011
@@ -26,7 +26,7 @@ import javax.inject.Named;
 @RequestScoped
 public class InjectedIntoBean
 {
-    @Inject  IntermediateDependentBean bean;
+    private @Inject  IntermediateDependentBean bean;
     
     public boolean isBeanNull(){
         return bean == null;

Modified: 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/IntermediateDependentBean.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/IntermediateDependentBean.java?rev=1079762&r1=1079761&r2=1079762&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/IntermediateDependentBean.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/disposes/beans/IntermediateDependentBean.java
 Wed Mar  9 11:55:07 2011
@@ -25,9 +25,10 @@ import org.apache.webbeans.newtests.disp
 
 public class IntermediateDependentBean
 {
-    @Inject @HttpHeader DependentModel bean;
+    private @Inject @HttpHeader DependentModel bean;
     
-    public DependentModel getBean(){
+    public DependentModel getBean()
+    {
         return bean;
     }
 }


Reply via email to