On 12/1/17 2:32 AM, Alan Bateman wrote:
On 30/11/2017 22:57, mandy chung wrote:
:

This is indeed a bug that should throw ISE when ClassLoader.getSystemClassLoader is called during the initialization of the system class loader, as the spec states.

line 1921: I suggest to revise the message to make it clearer:
     "getSystemClassLoader cannot be called during the system class loader instantiation"

In ClassLoader::initSystemClassLoader (line 1971), when the exception is thrown via Constructor::newInstance, it would be good to the cause of an InvocationTargetException like:

+                Throwable t = e;
+                if (e instanceof InvocationTargetException) {
+                    t = e.getCause();
+                }
+                throw new Error(t.getMessage(), t);
Better still might be for initSystemClassLoader to re-throw the cause so that it appears immediately after the "Error occurred during initialization of VM" message that the VM will fail with.

Yes that would be better.

Mandy

Reply via email to