Adding Tomek + Cheng, as they have been working on the WildFly EJB layer recently, which seems to use https://github.com/jbossas/jboss-classfilewriter for generating the EJB stub classes like org/jboss/as/test/integration/jpa/basic/SLSBPersistenceContexts$$$view5.class.
Perhaps Tomek or Cheng, can answer whether WildFly (EJB layer) or ByteBuddy should change to handle dynamically generated classes differently. In other words, should ByteBuddy respond differently to classLoader.getResourceAsStream("org/jboss/as/test/integration/jpa/basic/SLSBPersistenceContexts$$$view5.class") returning null or should the jboss-classfilewriter project somehow avoid this bug. Scott On 3/22/19 2:54 AM, Gail Badner wrote: > Scott added bytecode enhancement to some WildFly tests for WFLY-11891 [1], > which are failing. > > Here is Scott's PR with the updated tests: [2] > > When I stepped into > org.jboss.as.test.integration.jpa.basic.multiplepersistenceunittest.MultiplePuTestCase, > I can see that they are failing in ByteBuddy code. > > I see that: > > - enhancement of > org.jboss.as.test.integration.jpa.basic.SLSBPersistenceContexts gets > skipped several times in a row; > - enhancement of some other classes get skipped; > - before trying to enhance > org.jboss.as.test.integration.jpa.basic.SLSBPersistenceContexts$$$view5, > an > exception is thrown. > > Unfortunately, I'm having trouble getting a good stacktrace to show what > happens in ByteBuddy code. > > Here is what I'm seeing: > > net.bytebuddy.pool.TypePool$Default.doDescribe("org.jboss.as.test.integration.jpa.basic.SLSBPersistenceContexts$$$view5") > /* class name differs from run to run */ > > > calls net.bytebuddy.dynamic.ClassFileLocator$ForClassLoader.locate( " > org.jboss.as.test.integration.jpa.basic.SLSBPersistenceContexts$$$view5") > > calls net.bytebuddy.dynamic.ClassFileLocator.ForClassLoader.locate( > classLoader, > "org.jboss.as.test.integration.jpa.basic.SLSBPersistenceContexts$$$view5" > ) > > calls > classLoader.getResourceAsStream("org/jboss/as/test/integration/jpa/basic/SLSBPersistenceContexts$$$view5.class"), > which returns null; > > (I don't actually see a class file with this name) > > > returns new TypePool.Resolution.Illegal( > > "org/jboss/as/test/integration/jpa/basic/SLSBPersistenceContexts$$$view5.class" > > ) > > returns TypePool.Resolution.Illegal > > > Ultimately, TypePool.Resolution.Illegal#resolve( ) throws > IllegalStateException, because the type description cannot be resolved. > > I'm not sure if the problem is in WildFly, Hibernate, or ByteBuddy. > > To build WildFly: > ./build.sh clean install -DskipTests=true > > To run the test: > cd testsuite/integration/basic > mvn install > -Dtest=org/jboss/as/test/integration/jpa/basic/multiplepersistenceunittest/MultiplePuTestCase > > Help would be very much appreciated. > > Thanks, > Gail > > [1] https://issues.jboss.org/browse/WFLY-11891 > [2] https://github.com/wildfly/wildfly/pull/12180 > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev