rmannibucau commented on pull request #65:
URL: https://github.com/apache/openjpa/pull/65#issuecomment-658338171


   @jgrassel The threadlocal - as the boolean today - just skips the 
transformer, so it means that if a class must be enhanced and is loaded while 
another is enhanced then it is skipped and runtime is likely broken. It is not 
highly highly likely but not uncommon too. In the common cases I see, the case 
tmpLoader=mainloader (this is a common optimization which saves a lot of time, 
in particular with CDS on or too wide temp loader impls. In this last case, if 
the agent is set on the JVM for runtime enhancement, it should work whereas the 
classloader will guarantee a lock per class and will enable to load a class 
during a loadclass and the second one will bypass the transformer (wrongly). 
Also note that the enhancement, using openjpaconf, can load any plugin working 
on the class graph (thinking to MDR extensions to be concrete) so we don't 
fully control what can be loaded by openjpa itself during a transform0. So at 
the end, the only thing we are sure is that we can't transform concurrently a 
single class but anything else can happen (concurrent calls to transform, 
nested calls etc). However the main case is still that the "subloading" will be 
about classes of the enhancer graph so the openjpa+serp+asm (i will add this 
one ;), thanks for reminding it to me) explicit exclusion is a good default I 
think.


----------------------------------------------------------------
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


Reply via email to