RFR 8029891 : Deadlock detected in java/lang/ClassLoader/deadlock/GetResource.java - A Revival

Brent Christian brent.christian at oracle.com
Thu May 12 21:44:28 UTC 2016


On 5/12/16 11:44 AM, Mandy Chung wrote:
>
> This patch looks good.
>
> To help future readers to understand this, it may be better to move:
> 1152     private transient ConcurrentHashMap<Object, Object> map =
> 1153             new ConcurrentHashMap<>(8);
>
> to the beginning and add a comment describing what are lock-free and what are synchronized (basically some part of your summary below).
>
> Also a comment in Hashtable::defaultWriteHashtable and readHashtable methods to mention that they are overridden by Properties.

Good ideas.

> In the GetResource.java test, what is the reason taking out:
>    73   URL u2 = Thread.currentThread().getContextClassLoader().getResource("sun/util/resources/CalendarData.class”);
>

It was coming back null and failing the test, I think because
Jigsaw moved CalendarData into a different module (jdk.localedata, I 
believe?).  I fiddled with @modules a bit, but stopped when I discovered 
that when the test deadlocks, it hangs on the first call to 
getResource() and doesn't get to this line.

I can look into getting it to load CalendarData again, if you like.

Thanks,
-Brent




More information about the core-libs-dev mailing list