Concurrency issue in ProxyFactory
---------------------------------
Key: JASSIST-259
URL:
https://issues.jboss.org/browse/JASSIST-259
Project: Javassist
Issue Type: Bug
Affects Versions: 3.12.0.GA
Environment: AIX, IBM J9 VM (build 2.8, JRE 1.8.0 AIX ppc64-64 Compressed
References 20150722_258693 (JIT enabled, AOT enabled)
Reporter: Christian Beikov
Assignee: Shigeru Chiba
Priority: Critical
Fix For: 3.21.0-GA
Look at the following line to understand the issue
https://github.com/jboss-javassist/javassist/blob/master/src/main/javassi...
If there are 2 threads T1 and T2 at this line, T1 pauses and T2 runs through, on some
systems T1 may encounter thisClass to be null after it wakes up again.
This leads to Hibernate getting a null class in JavassistProxyFactory and trying to
create an instance of that which fails with a NPE.
Can anyone please confirm this issue? Maybe there is something in the JMM that I am not
aware of that makes this code safe, but as far as I can tell, this looks like a real bug
that just happens to uncover itself on an environment like J9 on AIX.