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;
+ }
+ }
+}