> On May 25, 2017, at 12:24 AM, David Holmes <david.hol...@oracle.com> wrote:
> 
> Correction ...
> 
> On 25/05/2017 5:00 PM, David Holmes wrote:
>> Hi Mandy
>> On 25/05/2017 8:10 AM, Mandy Chung wrote:
>>> http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8181033/webrev.00/
>>> 
>>> This fixes the launcher to print the exception being thrown rather than
>>> the confusing message "Error: A JNI error has occurred, please check
>>> your installation and try again”.  A few attempts to improve this to
>>> catch ClassNotFoundException and LinkageError.  This catches other cases.
>> Based on the exception stack that Volker reported this looks fine - it 
>> catches the unexpected exceptions encountered during getMethod() and reports 
>> them.
>> One thing that confuses me though, is that Volker reported the problem as 
>> occurring due to verification - and he showed some VM log output to support 
>> that. But verification happens when the main class is loaded! The exception 
>> trace shows code that executes well after loading time. ??
> 
> Never mind. The Class.forName call requests the class not be initialized, 
> which means it will not be linked. Verification is actually part of linking. 
> The class has to be initialized before getMethod can be invoked, and hence it 
> must first be linked and thus verified.

Yes exactly.  FWIW [1][2] are references to linking and initialization.

Mandy
[1] https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-5.html#jvms-5.4
[2] https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-5.html#jvms-5.5

Reply via email to