[ 
https://issues.apache.org/jira/browse/ARIES-690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Ward reassigned ARIES-690:
----------------------------------

    Assignee: Timothy Ward

> 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: 0.4
>
>
> 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.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to