aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeremy Hughes (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ARIES-690) ClassCircularityError caused by proxy weaving
Date Wed, 26 Oct 2011 16:27:32 GMT

     [ 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

        

Mime
View raw message