jgrassel commented on pull request #64: URL: https://github.com/apache/openjpa/pull/64#issuecomment-657859353
And in the OpenJPA case above, here is a cut of the trace log file showing EntityA (thread 000000a2) being enhanced, but EntityC (thread 000000a3) is not: ``` [7/13/20 17:44:15:317 CDT] 0000008f JPAPUnitInfo_ > transformClass: PUID = PuId=jpasandbox_simple_web.ear-1.0-SNAPSHOT.ear#webapp.war#TestPU, class name = web.SimpleTestServlet$Worker, classBytes.length = 1907 Entry (file:/Users/jgrassel/Dev/Liberty/WS-CD-Open/dev/build.image/wlp/usr/servers/defaultServer/apps/jpasandbox_simple_web.ear-1.0-SNAPSHOT.ear <no signer certificates>) com.ibm.ws.classloading.internal.AppClassLoader@369bc432 [7/13/20 17:44:15:317 CDT] 0000008f JPAPUnitInfo > classNeedsTransform : PUID = PuId=jpasandbox_simple_web.ear-1.0-SNAPSHOT.ear#webapp.war#TestPU, class name = web.SimpleTestServlet$Worker Entry [7/13/20 17:44:15:317 CDT] 0000008f JPAPUnitInfo < classNeedsTransform : web.SimpleTestServlet$Worker needs transform. Exit [7/13/20 17:44:15:317 CDT] 0000008f JPAPUnitInfo_ 3 transformer: org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl@4192b75d , className: web.SimpleTestServlet$Worker [7/13/20 17:44:15:317 CDT] 0000008f JPAPUnitInfo_ 3 transformer:org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl@4192b75d, web.SimpleTestServlet$Worker is NOT transformed. Byte length(old/new)=1907/1907 [7/13/20 17:44:15:317 CDT] 0000008f JPAPUnitInfo_ < transformClass: 0/1 Exit [7/13/20 17:44:15:321 CDT] 000000a3 JPAPUnitInfo_ > transformClass: PUID = PuId=jpasandbox_simple_web.ear-1.0-SNAPSHOT.ear#webapp.war#TestPU, class name = model.EntityC, classBytes.length = 1219 Entry (file:/Users/jgrassel/Dev/Liberty/WS-CD-Open/dev/build.image/wlp/usr/servers/defaultServer/apps/jpasandbox_simple_web.ear-1.0-SNAPSHOT.ear <no signer certificates>) com.ibm.ws.classloading.internal.AppClassLoader@369bc432 [7/13/20 17:44:15:321 CDT] 000000a2 JPAPUnitInfo_ > transformClass: PUID = PuId=jpasandbox_simple_web.ear-1.0-SNAPSHOT.ear#webapp.war#TestPU, class name = model.EntityA, classBytes.length = 2258 Entry (file:/Users/jgrassel/Dev/Liberty/WS-CD-Open/dev/build.image/wlp/usr/servers/defaultServer/apps/jpasandbox_simple_web.ear-1.0-SNAPSHOT.ear <no signer certificates>) com.ibm.ws.classloading.internal.AppClassLoader@369bc432 [7/13/20 17:44:15:322 CDT] 000000a2 JPAPUnitInfo > classNeedsTransform : PUID = PuId=jpasandbox_simple_web.ear-1.0-SNAPSHOT.ear#webapp.war#TestPU, class name = model.EntityA Entry [7/13/20 17:44:15:322 CDT] 000000a3 JPAPUnitInfo > classNeedsTransform : PUID = PuId=jpasandbox_simple_web.ear-1.0-SNAPSHOT.ear#webapp.war#TestPU, class name = model.EntityC Entry [7/13/20 17:44:15:322 CDT] 000000a2 JPAPUnitInfo < classNeedsTransform : model.EntityA needs transform. Exit [7/13/20 17:44:15:322 CDT] 000000a2 JPAPUnitInfo_ 3 transformer: org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl@4192b75d , className: model.EntityA [7/13/20 17:44:15:322 CDT] 000000a3 JPAPUnitInfo < classNeedsTransform : model.EntityC needs transform. Exit [7/13/20 17:44:15:322 CDT] 000000a3 JPAPUnitInfo_ 3 transformer: org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl@4192b75d , className: model.EntityC [7/13/20 17:44:15:322 CDT] 000000a3 JPAPUnitInfo_ 3 transformer:org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl@4192b75d, model.EntityC is NOT transformed. Byte length(old/new)=1219/1219 [7/13/20 17:44:15:322 CDT] 000000a3 JPAPUnitInfo_ < transformClass: 0/1 Exit [7/13/20 17:44:15:325 CDT] 000000a2 Enhance 3 openjpa.Enhance: Trace: "model.EntityA" requires runtime enhancement: true [7/13/20 17:44:15:366 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Loading metadata for "class model.EntityA" under mode "[META][QUERY]". [7/13/20 17:44:15:387 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Parsing class "model.EntityA". [7/13/20 17:44:15:387 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Parsing package "model.EntityA". [7/13/20 17:44:15:408 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Generating default metadata for type "model.EntityA". [7/13/20 17:44:15:408 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Using reflection for metadata generation. [7/13/20 17:44:15:420 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Set persistence-capable superclass of "model.EntityA" to "null". [7/13/20 17:44:15:422 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Resolving metadata for "model.EntityA@5732165". [7/13/20 17:44:15:422 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Resolving field "model.EntityA@5732165.entityB". [7/13/20 17:44:15:422 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Loading metadata for "class model.EntityB" under mode "[META][QUERY]". [7/13/20 17:44:15:422 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Parsing class "model.EntityB". [7/13/20 17:44:15:422 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Generating default metadata for type "model.EntityB". [7/13/20 17:44:15:422 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Using reflection for metadata generation. [7/13/20 17:44:15:423 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Set persistence-capable superclass of "model.EntityB" to "null". [7/13/20 17:44:15:430 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Resolving field "model.enti...@5732165.id". [7/13/20 17:44:15:430 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Resolving field "model.EntityA@5732165.lazyStringData". [7/13/20 17:44:15:430 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Resolving field "model.EntityA@5732165.strData". [7/13/20 17:44:15:430 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Resolving field "model.EntityA@5732165.version". [7/13/20 17:44:15:431 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Resolving metadata for "model.EntityB@55778804". [7/13/20 17:44:15:431 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Resolving field "model.enti...@55778804.id". [7/13/20 17:44:15:431 CDT] 000000a2 MetaData 3 openjpa.MetaData: Trace: Resolving field "model.EntityB@55778804.strData". [7/13/20 17:44:15:432 CDT] 000000a2 Enhance 3 openjpa.Enhance: Trace: Enhancing type "class model.EntityA" loaded by com.ibm.ws.classloading.internal.ShadowClassLoader@79eae7e4. [7/13/20 17:44:15:459 CDT] 000000a2 Enhance 3 openjpa.Enhance: Trace: Enhancement for "model.EntityA" completed. Class size: [2,258/10,803] [7/13/20 17:44:15:459 CDT] 000000a2 JPAPUnitInfo_ 3 transformer:org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl@4192b75d, model.EntityA is transformed. Byte length(old/new)=2258/10803 [7/13/20 17:44:15:459 CDT] 000000a2 JPAPUnitInfo_ < transformClass: 1/1 Exit ``` Notice we only see: `openjpa.Enhance: Trace: "model.EntityA" requires runtime enhancement: true`, but not for EntityC, because the boolean short circuits hitting the MDR. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org