[jboss-jira] [JBoss JIRA] Commented: (JASSIST-28) javassist enhancement failed on deserializing hibernate proxies

Armin Haaf (JIRA) jira-events at jboss.com
Mon Nov 6 03:19:42 EST 2006


    [ http://jira.jboss.com/jira/browse/JASSIST-28?page=comments#action_12346303 ] 
            
Armin Haaf commented on JASSIST-28:
-----------------------------------

Hi Muga,

you version of javassist did not work at all (see below). I'm not sure, If this is a problem with java 5



[java] SCHWERWIEGEND: Javassist Enhancement failed: Server$TestEntity
     [java] java.lang.Error: Unresolved compilation problems:
     [java]     The import javassist.CannotCompileException cannot be resolved
     [java]     The import javassist.bytecode cannot be resolved
     [java]     ClassFile cannot be resolved to a type
     [java]     The method make() is undefined for the type ProxyFactory
     [java]     CannotCompileException cannot be resolved to a type
     [java]     e cannot be resolved
     [java]     e cannot be resolved
     [java]     ClassFile cannot be resolved to a type
     [java]     CannotCompileException cannot be resolved to a type
     [java]     CannotCompileException cannot be resolved to a type
     [java]     ClassFile cannot be resolved to a type
     [java]     ClassFile cannot be resolved to a type
     [java]     AccessFlag cannot be resolved
     [java]     ConstPool cannot be resolved to a type
     [java]     FieldInfo cannot be resolved to a type
     [java]     FieldInfo cannot be resolved to a type
     [java]     AccessFlag cannot be resolved
     [java]     AccessFlag cannot be resolved
     [java]     FieldInfo cannot be resolved to a type
     [java]     FieldInfo cannot be resolved to a type
     [java]     AccessFlag cannot be resolved
     [java]     ClassFile cannot be resolved to a type
     [java]     ClassFile cannot be resolved to a type
     [java]     ConstPool cannot be resolved to a type
     [java]     CannotCompileException cannot be resolved to a type
     [java]     FieldInfo cannot be resolved to a type
     [java]     FieldInfo cannot be resolved to a type
     [java]     AccessFlag cannot be resolved
     [java]     AccessFlag cannot be resolved
     [java]     MethodInfo cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Bytecode cannot be resolved
     [java]     ClassFile cannot be resolved to a type
     [java]     ConstPool cannot be resolved to a type
     [java]     CannotCompileException cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     AccessFlag cannot be resolved
     [java]     Bytecode cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Bytecode cannot be resolved
     [java]     ClassFile cannot be resolved to a type
     [java]     ConstPool cannot be resolved to a type
     [java]     CannotCompileException cannot be resolved to a type
     [java]     CannotCompileException cannot be resolved to a type
     [java]     CannotCompileException cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     ConstPool cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     MethodInfo cannot be resolved to a type
     [java]     ConstPool cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     ConstPool cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     Descriptor cannot be resolved
     [java]     Bytecode cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     MethodInfo cannot be resolved to a type
     [java]     ConstPool cannot be resolved to a type
     [java]     MethodInfo cannot be resolved to a type
     [java]     ConstPool cannot be resolved to a type
     [java]     ExceptionsAttribute cannot be resolved to a type
     [java]     ExceptionsAttribute cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Bytecode cannot be resolved to a type
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Bytecode cannot be resolved to a type
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Bytecode cannot be resolved to a type
     [java]     Opcode cannot be resolved
     [java]     Bytecode cannot be resolved to a type
     [java]     Opcode cannot be resolved
     [java]     Opcode cannot be resolved
     [java]     Bytecode cannot be resolved to a type
     [java]     Opcode cannot be resolved

     [java]     at javassist.util.proxy.ProxyFactory.<init>(ProxyFactory.java:32)
     [java]     at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:137)
     [java]     at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:42)
     [java]     at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
     [java]     at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
     [java]     at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
     [java]     at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
     [java]     at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:269)
     [java]     at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:425)
     [java]     at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
     [java]     at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
     [java]     at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
     [java]     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
     [java]     at Server.initHibernate(Server.java:54)
     [java]     at Server.startServer(Server.java:58)
     [java]     at Server.main(Server.java:126)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     at java.lang.reflect.Method.invoke(Method.java:585)
     [java]     at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:193)
     [java]     at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:130)
     [java]     at org.apache.tools.ant.taskdefs.Java.run(Java.java:705)
     [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:177)
     [java]     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:83)
     [java]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:364)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:341)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:369)
     [java]     at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
     [java]     at org.apache.tools.ant.Project.executeTargets(Project.java:1062)
     [java]     at org.apache.tools.ant.Main.runBuild(Main.java:673)
     [java]     at org.apache.tools.ant.Main.startAnt(Main.java:188)
     [java]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
     [java]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)


> javassist enhancement failed on deserializing hibernate proxies
> ---------------------------------------------------------------
>
>                 Key: JASSIST-28
>                 URL: http://jira.jboss.com/jira/browse/JASSIST-28
>             Project: Javassist
>          Issue Type: Bug
>         Environment: hibernate 3.2.0GA, javassist 3.3, jboss 4.0.4GA
>            Reporter: Armin Haaf
>         Assigned To: Shigeru Chiba
>         Attachments: TestJavassist.tgz, TestJavassistSerializationPerformance.java
>
>
> on deserializing objects load by hibernate on a jbossas with uninitialized proxies we the following exception on a performance/concurrent testing:
> Exception in thread "Thread-7" org.hibernate.HibernateException: Javassist Enhancement failed: de.mueller.wms.base.model.impl.StorageImpl
> 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxy(JavassistLazyInitializer.java:88)
> 	at org.hibernate.proxy.pojo.javassist.SerializableProxy.readResolve(SerializableProxy.java:54)
> 	at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1033)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1728)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> 	at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:122)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1755)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1717)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> 	at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:128)
> 	at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:66)
> 	at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:279)
> 	at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143)
> 	at org.jboss.remoting.Client.invoke(Client.java:525)
> 	at org.jboss.remoting.Client.invoke(Client.java:488)
> 	at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:55)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:65)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
> 	at $Proxy2.executeCommand(Unknown Source)
> 	at de.mueller.wms.base.service.JndiRemoteLookupDelegateImpl$CommandExecutionInvocationHandler.invoke(JndiRemoteLookupDelegateImpl.java:57)
> 	at $Proxy1.changeStock(Unknown Source)
> 	at de.mueller.wms.base.TestJBossPerformance$1.run(TestJBossPerformance.java:58)
> Caused by: java.lang.RuntimeException: by java.lang.LinkageError: duplicate class definition: de/mueller/wms/base/model/impl/StorageImpl_$$_javassist_1272
> 	at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:174)
> 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxy(JavassistLazyInitializer.java:79)
> 	... 44 more
> Caused by: javassist.CannotCompileException: by java.lang.LinkageError: duplicate class definition: de/mueller/wms/base/model/impl/StorageImpl_$$_javassist_1272
> 	at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:167)
> 	at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:170)
> 	... 45 more
> Caused by: java.lang.LinkageError: duplicate class definition: de/mueller/wms/base/model/impl/StorageImpl_$$_javassist_1272
> 	at java.lang.ClassLoader.defineClass1(Native Method)
> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> 	at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:159)
> 	... 46 more
>  
> The performance is also very bad in comparison with cglib proxies (in our performance test with cglib proxies the test runs 3x faster)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list