> On May 11, 2016, at 8:39 PM, David Holmes <david.hol...@oracle.com> wrote:
> 
>> While good progress was made during the original code review, all of the
>> overridden methods in Properties caused an explosion of unnecessary
>> JavaDoc (see specdiff at [2]).  With the recent fix of 8073100 (new
>> "@hidden" JavaDoc tag), we can now avoid the additional clutter.
> 
> The existing javadoc has a section "Methods inherited from 
> java.util.Hashtable" which I can't see in your specdiff - what does that 
> section say about the methods you overrode to delegate to the CHM instance? 
> Are they simply not listed, or does it lie and claim they are inherited, or 
> does it have some new way to present "@hidden" things?

No javadoc will be generated for @Hidden methods.  Kumar can give more details 
about it.

> 
>> FWIW, the deadlock code path is now different than what is seen in the
>> bug report (see [3]).  We're now getting hung up on the
>> Integer.getInteger() call to get MAX_ARITY on line 60 of
>> MethodHandleImpl [4].
> 
> So while the original deadlock is resolved by all this change, there still 
> exists a deadlock.

Properties::get is now lock-free with this change.  The stack trace below is 
the deadlock before this fix.

> I can see from the details that store() locks the properties object and can 
> lead to MethodHandleNatives.linkCallsite, while in another thread we have
> 
> at java.util.Hashtable.get(java.base@9-ea/Hashtable.java:370)
>       - waiting to lock <0x00000006cff097f0> (a java.util.Properties)
> ...
> at java.lang.invoke.CallSite.<clinit>(java.base@9-ea/CallSite.java:230)
>       at 
> java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(java.base@9-ea/MethodHandleNatives.java:250)
> 
> I think we have some fundamental initialization order problems that need to 
> be addressed in a holistic way rather than deadlock by deadlock (or 
> initialization failure by initialization failure).

The startup initialization has been updated significantly.  That should clean 
up a few initialization failures.  However, I agree that there are still 
deadlocks and initialization failures to be addressed.

Mandy

Reply via email to