Author: rmannibucau
Date: Wed Aug  1 08:32:40 2012
New Revision: 1367883

URL: http://svn.apache.org/viewvc?rev=1367883&view=rev
Log:
OPENEJB-1882 skipping object methods in local bean proxies

Added:
    
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ThisInConstructorTest.java
Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyGeneratorImpl.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java?rev=1367883&r1=1367882&r2=1367883&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java
 Wed Aug  1 08:32:40 2012
@@ -27,7 +27,7 @@ import javax.ejb.EJBException;
 public class LocalBeanProxyFactory {
 
     private static final java.lang.reflect.InvocationHandler 
NON_BUSINESS_HANDLER = new NonBusinessHandler();
-    
+
     public static Object newProxyInstance(ClassLoader cl, Class interfce, 
java.lang.reflect.InvocationHandler h) throws IllegalArgumentException {
             try {
             Class proxyCls = new 
LocalBeanProxyGeneratorImpl().createProxy(interfce, cl);

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyGeneratorImpl.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyGeneratorImpl.java?rev=1367883&r1=1367882&r2=1367883&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyGeneratorImpl.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyGeneratorImpl.java
 Wed Aug  1 08:32:40 2012
@@ -192,8 +192,7 @@ public class LocalBeanProxyGeneratorImpl
                    }
                }
                
-               byte[] clsBytes = cw.toByteArray();
-               return clsBytes;
+               return cw.toByteArray();
        }
 
        /*
@@ -212,7 +211,8 @@ public class LocalBeanProxyGeneratorImpl
                        int modifiers = method.getModifiers();
                        if (Modifier.isFinal(modifiers) || 
                            Modifier.isPrivate(modifiers) || 
-                           Modifier.isStatic(modifiers)) {
+                           Modifier.isStatic(modifiers) ||
+                            method.getDeclaringClass().equals(Object.class)) {
                            continue;
                        }
                        

Added: 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ThisInConstructorTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ThisInConstructorTest.java?rev=1367883&view=auto
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ThisInConstructorTest.java
 (added)
+++ 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ThisInConstructorTest.java
 Wed Aug  1 08:32:40 2012
@@ -0,0 +1,46 @@
+package org.apache.openejb.core.stateless;
+
+import org.apache.openejb.jee.Empty;
+import org.apache.openejb.jee.StatelessBean;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.junit.Module;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+
+import static org.junit.Assert.assertNotNull;
+
+@RunWith(ApplicationComposer.class)
+public class ThisInConstructorTest {
+    @EJB
+    private AStatelessWithAConstructor stateless;
+
+    @Test
+    public void validThis() {
+        assertNotNull(stateless);
+        assertNotNull(stateless.getThat());
+    }
+
+    @Module
+    public StatelessBean bean() {
+        final StatelessBean bean = new 
StatelessBean(AStatelessWithAConstructor.class);
+        bean.setLocalBean(new Empty());
+        return bean;
+    }
+
+    @Stateless
+    public static class AStatelessWithAConstructor {
+        private AStatelessWithAConstructor that;
+
+        public AStatelessWithAConstructor() {
+            that = this;
+            System.out.println(this);
+        }
+
+        public AStatelessWithAConstructor getThat() {
+            return that;
+        }
+    }
+}


Reply via email to