[jboss-cvs] JBossAS SVN: r65733 - in branches/Branch_4_2/ejb3/src: main/org/jboss/injection and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Oct 1 18:28:43 EDT 2007


Author: bdecoste
Date: 2007-10-01 18:28:43 -0400 (Mon, 01 Oct 2007)
New Revision: 65733

Modified:
   branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulContainer.java
   branches/Branch_4_2/ejb3/src/main/org/jboss/injection/AbstractPropertyInjector.java
   branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/stateful/unit/MetricsUnitTestCase.java
   branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/stateful/unit/RemoteUnitTestCase.java
Log:
[EJBTHREE-883] reinject transient on activation

Modified: branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulContainer.java
===================================================================
--- branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulContainer.java	2007-10-01 22:00:25 UTC (rev 65732)
+++ branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/stateful/StatefulContainer.java	2007-10-01 22:28:43 UTC (rev 65733)
@@ -21,8 +21,10 @@
  */
 package org.jboss.ejb3.stateful;
 
+import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
 import java.util.Hashtable;
 import java.util.Map;
 
@@ -60,7 +62,7 @@
 import org.jboss.ejb3.proxy.EJBMetaDataImpl;
 import org.jboss.ejb3.proxy.handle.HomeHandleImpl;
 import org.jboss.injection.Injector;
-import org.jboss.injection.JndiFieldInjector;
+import org.jboss.injection.JndiPropertyInjector;
 import org.jboss.logging.Logger;
 
 /**
@@ -387,14 +389,21 @@
    {
       for (Injector injector : injectors)
       {
-         if (injector instanceof JndiFieldInjector)
+         if (injector instanceof JndiPropertyInjector)
          {
-            Field field = ((JndiFieldInjector) injector).getField();
+            AccessibleObject field = ((JndiPropertyInjector) injector).getAccessibleObject();
+            
             if (field.isAnnotationPresent(javax.ejb.EJB.class))
             {
                continue; // skip nested EJB injection since the local proxy will be (de)serialized correctly
             }
-            injector.inject(beanContext);
+            
+            if (field instanceof Field)
+            {
+               // reinject transient fields
+               if ((((Field)field).getModifiers() & Modifier.TRANSIENT) > 0)
+                  injector.inject(beanContext);
+            }
          }
       }
       callbackHandler.postActivate(beanContext);

Modified: branches/Branch_4_2/ejb3/src/main/org/jboss/injection/AbstractPropertyInjector.java
===================================================================
--- branches/Branch_4_2/ejb3/src/main/org/jboss/injection/AbstractPropertyInjector.java	2007-10-01 22:00:25 UTC (rev 65732)
+++ branches/Branch_4_2/ejb3/src/main/org/jboss/injection/AbstractPropertyInjector.java	2007-10-01 22:28:43 UTC (rev 65733)
@@ -21,6 +21,8 @@
  */
 package org.jboss.injection;
 
+import java.lang.reflect.AccessibleObject;
+
 import org.jboss.ejb3.BeanContext;
 import org.jboss.injection.lang.reflect.BeanProperty;
 
@@ -48,4 +50,9 @@
    {
       inject(ctx.getInstance());
    }
+   
+   public AccessibleObject getAccessibleObject()
+   {
+      return property.getAccessibleObject();
+   }
 }

Modified: branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/stateful/unit/MetricsUnitTestCase.java
===================================================================
--- branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/stateful/unit/MetricsUnitTestCase.java	2007-10-01 22:00:25 UTC (rev 65732)
+++ branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/stateful/unit/MetricsUnitTestCase.java	2007-10-01 22:28:43 UTC (rev 65733)
@@ -100,8 +100,7 @@
       
       assertFalse(stateful.testSessionContext());
       
-      // Wolf: transient re-injection is broken (EJBTHREE-883)
-      //stateful.testResources();
+      stateful.testResources();
       
       count = (Integer)server.getAttribute(testerName, "CreateCount");
       assertEquals(2, count);

Modified: branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/stateful/unit/RemoteUnitTestCase.java
===================================================================
--- branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/stateful/unit/RemoteUnitTestCase.java	2007-10-01 22:00:25 UTC (rev 65732)
+++ branches/Branch_4_2/ejb3/src/test/org/jboss/ejb3/test/stateful/unit/RemoteUnitTestCase.java	2007-10-01 22:28:43 UTC (rev 65733)
@@ -563,8 +563,7 @@
       
       assertFalse(stateful.testSessionContext());
       
-      // Wolf: transient re-injection is broken (EJBTHREE-883)
-      //stateful.testResources();
+      stateful.testResources();
       
       stateless.testInjection();
       




More information about the jboss-cvs-commits mailing list