On 06/19/2013 08:54 PM, Alan Bateman wrote:
On 19/06/2013 15:23, Peter Levart wrote:
Hi,
Since the bulk of changes to annotations and reflection have
stabilized, I'm bringing up a re-based batch that I have proposed
some months ago:
http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-February/014203.html
:
This patch is one angle of attack for bug 7122142. The other is, off
course, removing the other synchronized keyword (on
Class.initAnnotationsIfNecessary()). I'm planning to do that too, but
in a more straight-forward manner.
Regards, Peter
Thank you for coming back to this.
I've looked over the webrev and the approach looks good to me. Joel
might want to look at this too. Do you think you could include a test
(as we try to include a test with all fixes if we can)?
Hi Alan,
I'll do the tests for both issues. The 1st (deadlock) will be
straightforward (I think). But the second requires two versions of
source file for single class. The 1st version is compiled with the test
and the 2nd version is compiled separately and used to run the test (to
simulate separate compilation). Do you happen to know if something like
that has already been done in some JDK test or how to approach writing
such test (whether there's already any infrastructure built that might
support such tests)?
It would be good to remove the synchronizaiton on
initAnnotationsIfNecessary too, but one step as time (and smaller
changes are always easier to discuss).
One step at a time, right. I actually thought that to be a separate,
unrelated patch that just happens to solve the same bug, but it also
solves the other one:
8011940 : java.lang.Class.getAnnotations() always enters synchronized method
Regards, Peter
-Alan