[
https://issues.apache.org/jira/browse/ARIES-690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jeremy Hughes updated ARIES-690:
--------------------------------
Fix Version/s: (was: 0.4)
proxy.impl-0.4
proxy uber bundle 0.4
> ClassCircularityError caused by proxy weaving
> ---------------------------------------------
>
> Key: ARIES-690
> URL: https://issues.apache.org/jira/browse/ARIES-690
> Project: Aries
> Issue Type: Bug
> Affects Versions: 0.4
> Reporter: Kevan Miller
> Assignee: Timothy Ward
> Fix For: proxy uber bundle 0.4, proxy.impl-0.4
>
> Attachments: patch.txt
>
>
> I've run into a ClassCircularityError that's apparently caused by proxy
> weaving code. I captured the stack trace via debugger:
> {quote}
> ejbd 1@1196 daemon, prio=5, in group 'main', status: 'RUNNING'
> at
> java.lang.ClassCircularityError.<init>(ClassCircularityError.java:32)
> at java.lang.Class.getDeclaringClass(Class.java:-1)
> at java.lang.Class.getEnclosingClass(Class.java:1085)
> at
> org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.readClass(AbstractWovenProxyAdapter.java:618)
> at
> org.apache.aries.proxy.impl.weaving.WovenProxyAdapter.visitEnd(WovenProxyAdapter.java:75)
> at org.objectweb.asm.ClassAdapter.visitEnd(Unknown Source:-1)
> at org.objectweb.asm.commons.SerialVersionUIDAdder.visitEnd(Unknown
> Source:-1)
> at
> org.apache.aries.proxy.impl.weaving.SyntheticSerialVerUIDAdder.visitEnd(SyntheticSerialVerUIDAdder.java:35)
> at org.objectweb.asm.ClassReader.accept(Unknown Source:-1)
> at org.objectweb.asm.ClassReader.accept(Unknown Source:-1)
> at
> org.apache.aries.proxy.impl.weaving.WovenProxyGenerator.getWovenProxy(WovenProxyGenerator.java:52)
> at
> org.apache.aries.proxy.impl.weaving.ProxyWeavingHook.weave(ProxyWeavingHook.java:63)
> at
> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.call(WovenClassImpl.java:129)
> at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1239)
> at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1222)
> at
> org.eclipse.osgi.internal.baseadaptor.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:154)
> at
> org.eclipse.osgi.internal.baseadaptor.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:68)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:596)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458)
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at
> org.apache.openjpa.util.Serialization.deserialize(Serialization.java:86)
> at
> org.apache.openjpa.jdbc.sql.DBDictionary.getBlobObject(DBDictionary.java:623)
> at
> org.apache.openjpa.jdbc.sql.ResultSetResult.getObjectInternal(ResultSetResult.java:402)
> at
> org.apache.openjpa.jdbc.sql.AbstractResult.getObject(AbstractResult.java:696)
> at
> org.apache.openjpa.jdbc.meta.strats.HandlerStrategies.loadDataStore(HandlerStrategies.java:222)
> at
> org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.load(HandlerFieldStrategy.java:187)
> at
> org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:928)
> at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1123)
> at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1067)
> at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:438)
> at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:333)
> at
> org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:112)
> at
> org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
> at
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:1022)
> at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:980)
> at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:902)
> at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1041)
> at
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:280)
> at
> org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.load(SelectImpl.java:2381)
> at
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:274)
> at
> org.apache.openjpa.jdbc.kernel.InstanceResultObjectProvider.getResultObject(InstanceResultObjectProvider.java:59)
> at
> org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:36)
> at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1251)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1007)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:863)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:794)
> at
> org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
> at
> org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:305)
> at
> org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:319)
> at
> org.apache.openejb.core.cmp.jpa.JpaCmpEngine.executeSelectQuery(JpaCmpEngine.java:277)
> at
> org.apache.openejb.core.cmp.jpa.JpaCmpEngine.queryBeans(JpaCmpEngine.java:231)
> at
> org.apache.openejb.core.cmp.CmpContainer.findEJBObject(CmpContainer.java:669)
> at
> org.apache.openejb.core.cmp.CmpContainer.invoke(CmpContainer.java:261)
> at
> org.apache.openejb.core.cmp.CmpContainer.invoke(CmpContainer.java:230)
> at
> org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbHome_FIND(EjbRequestHandler.java:327)
> at
> org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:152)
> at
> org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:196)
> at
> org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:149)
> at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:71)
> at
> org.apache.openejb.server.ejbd.KeepAliveServer$Session.service(KeepAliveServer.java:213)
> at
> org.apache.openejb.server.ejbd.KeepAliveServer.service(KeepAliveServer.java:233)
> at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:66)
> at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:91)
> at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:120)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:680)
> {quote}
> If I exclude 'org.apache.openjpa' from weaving (by adding a check in
> ProxyWeavingHook), everything works fine...
> I may commit this as a temporary work-around -- to help Geronimo testing.
> However, this seems like a general proxy issue. So, I think we'll need to
> understand the underlying issue...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira