EjbDefinitionUtility.defineEjbBeanProxy() should be able to create proxies for
no-interface local beans
-------------------------------------------------------------------------------------------------------
Key: OWB-463
URL: https://issues.apache.org/jira/browse/OWB-463
Project: OpenWebBeans
Issue Type: Improvement
Components: Java EE Integration
Affects Versions: 1.0.0-alpha-2
Reporter: Eric Covener
Assignee: Eric Covener
Fix For: 1.0.0-alpha-3
Sometimes callers of EjbDefinitionUtility.defineEjbBeanProxy() will have to
pass the local bean class, when @LocalBean is the only valid local business
"interface".
But, we can't pass the bean class to the proxyFactory.setInterfaces() as this
causes an exeption in javassist since it's not really an interface that can be
implemented. On my stack, I see
Caused by: java.lang.RuntimeException: by
java.lang.IncompatibleClassChangeError: foo.classWithLocalBeanView
at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:509)
at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486)
at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422)
at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394)
at
org.apache.webbeans.util.SecurityUtil$PrivilegedActionForProxyFactory.run(SecurityUtil.java:301)
at
java.security.AccessController.doPrivileged(AccessController.java:202)
at
org.apache.webbeans.util.SecurityUtil.doPrivilegedCreateClass(SecurityUtil.java:184)
at
org.apache.webbeans.proxy.JavassistProxyFactory.defineEjbBeanProxyClass(JavassistProxyFactory.java:149)
at
org.apache.webbeans.ejb.common.util.EjbDefinitionUtility.defineEjbBeanProxy(EjbDefinitionUtility.java:73)
Simply calling proxyFactory.setSuperClass() seems sufficient and makes sense.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.