On 3/22/19 10:08 AM, Scott Marlow wrote: > > > On 3/22/19 9:24 AM, Scott Marlow wrote: >> >> >> On 3/22/19 9:11 AM, Scott Marlow wrote: >>> >>> >>> On 3/22/19 7:49 AM, Guillaume Smet wrote: >>>> Hi Gail, >>>> >>>> Do we have any idea of what this class is supposed to be: >>>> org.jboss.as.test.integration.jpa.basic.SLSBPersistenceContexts$$$view5 >>>> ? >>> >>> This is a unit test class that is not an entity class, but instead it >>> happens to be an EJB stateless session bean. In the exception call >>> stack [1], the class that ByteBuddy complains about is a WildFly >>> class (not even a test class), you can see that in the exception >>> message SerializationProxyHackImplementation [2]. >>> >>>> Scott, any idea? >>> >>> I was not really aware that classes like >>> SerializationProxyHackImplementation [2] , would also be handled by >>> org.jboss.as.server.deployment.module.DelegatingClassFileTransformer.transform() >>> >>> but I guess that makes sense, as application classloaders versus >>> application module classloaders, are not distinguished internally in WF. >> >> I meant that class file transformers will be called for both >> application classes and WF classes as well. > > I'm going to see if I can hack around this failure in WF code, so that > WF doesn't call into Hibernate to transform the > org.jboss.as.ejb3.SerializationProxyHackImplementation class.
I tried changing org.jboss.as.server.deployment.module.DelegatingClassFileTransformer.transform() to filter out any non-application classes but that didn't help as DelegatingClassFileTransformer.transform() doesn't get called to transform the SerializationProxyHackImplementation [2] class. It might be that the application classes are getting injected with a classloader that references the SerializationProxyHackImplementation [2] class. IMO, this probably should be fixed in Hibernate ORM or ByteBuddy. > >> >>> >>> I'm also not sure of how Javassist handles ignoring the >>> SerializationProxyHackImplementation [2] class but Javassist does >>> work fine (as long as you work around the other issue, which is that >>> Javassist can only be selected via system property setting but not >>> persistence.xml setting, also mentioned in WFLY-11891 [3]). >>> >>>> >>>> Because it doesn't ring a bell on my side. >>>> >>>> I suspect it's a class we shouldn't access or touch. And we should >>>> probably >>>> add a condition somewhere to avoid doing so. >>> >>> Agreed. >>> >>>> >>>> If you can give me the Hibernate call which initiates the error, >>>> that would >>>> be nice. >>> >>> [1] shows the exception call stack (look for >>> "org.hibernate.bytecode.enhance.internal.bytebuddy.EnhancerImpl.lambda$enhance$0(EnhancerImpl.java:137)" >>> >>> >>> >>> >>>> >>>> And stupid question: we did not have any enhancement test in WildFly >>>> before >>>> that? >>>> >>> >>> No, sadly, this is the first time we updated the WildFly unit tests >>> to try Javassist + ByteBuddy enhancement. Its a very light test with >>> little verification, basically we just modified some existing tests >>> to include: >>> >>> hibernate.enhancer.enableDirtyTracking=true >>> hibernate.enhancer.enableLazyInitialization=true >>> hibernate.enhancer.enableAssociationManagement=true >>> >>> And one test was also modified to specify >>> hibernate.bytecode.provider=javassist, which is ignored (only the >>> system property works, via standalone.sh >>> -Dhibernate.bytecode.provider=javassist). The problem is also >>> mentioned in WFLY-11891 [3]. >>> >>> In WF, we also have a mock persistence provider test that ensures >>> that persistence providers can enhance classes as per the JPA >>> container contract. >>> >>> Scott >>> >>> [1] >>> https://issues.jboss.org/browse/WFLY-11891?focusedCommentId=13711809&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13711809 >>> >>> >>> >>> [2] java.lang.IllegalStateException: Cannot resolve type description >>> for org.jboss.as.ejb3.SerializationProxyHackImplementation >>> >>> [3] https://issues.jboss.org/browse/WFLY-11891 _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev