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
             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