[ 
https://issues.apache.org/jira/browse/OPENJPA-2817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17163896#comment-17163896
 ] 

ASF subversion and git services commented on OPENJPA-2817:
----------------------------------------------------------

Commit fd70273f246255e86411bc4ed738860bd5cdc8f6 in openjpa's branch 
refs/heads/OPENJPA-2817_PCClassFileTransformer-exclusions from Romain 
Manni-Bucau
[ https://gitbox.apache.org/repos/asf?p=openjpa.git;h=fd70273 ]

OPENJPA-2817 dropping _transforming from PCClassFileTransformer and replace it 
by a minimal exclusion list


> OpenJPA enhancer needs improved reentrancy
> ------------------------------------------
>
>                 Key: OPENJPA-2817
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2817
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: Enhance
>    Affects Versions: 2.2.2, 2.3.0, 2.4.3, 3.1.1
>            Reporter: Jody Grassel
>            Assignee: Jody Grassel
>            Priority: Major
>             Fix For: 2.2.3
>
>
> OpenJPA's class transformer was designed in a time when ClassLoader access 
> was synchronized. Because it was assumed that if the ClassLoader caused 
> another class to load while it was already enhancing a class, causing another 
> triggering of the class transformer, it was assumed that that could only 
> happen if OpenJPA was bundled as part of the application (loaded by the app 
> classloader in an EE environment), and was safe to assume that this reentrant 
> invocation would not be a request to enhance a persistent type, and thus 
> return null (no enhancement needed).
> With Java 7+, ClassLoader locking has been changed 
> ([https://docs.oracle.com/javase/7/docs/technotes/guides/lang/cl-mt.html]).  
> Now, because the same ClassLoader (and thus same transformer), can be invoked 
> concurrently by different threads, this assumption was no longer valid.
> OpenJPA needs to be updated to be mindful of reentrancy on a thread scope, 
> instead of just simply reacting to reentrancy whenever it happens.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to