RFR 8187222 : ClassLoader.getSystemClassLoader not clear if recursive initialization leads to ISE or unspecified error (original) (raw)

mandy chung mandy.chung at oracle.com
Fri Dec 1 16:33:28 UTC 2017


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



More information about the core-libs-dev mailing list