RFR(M): 8165550: Add class loader names to ClassCastException message
rachel.protacio at oracle.com
Thu Nov 10 22:31:32 UTC 2016
Ah yes, my apologies - I should have provided more context. This is the
VM corollary of Mandy's change
implements the new classloader name scheme and uses it in Stack Traces.
In the fullest instance, it could look like
MyClassLoader/module1 at 9.0/package1.class1
The class loader is not listed if it is built-in, the module is not
listed if it is unnamed, the version is not listed if it is a "non-jdk"
I appreciate your point about shortening this specific CCE message to
not repeat information, but I think there's a stronger case for
maintaining a VM-wide format for all ClassLoader-module-fqn strings.
This format will be used for more messages as well, e.g. unified logging
for class loading. (The follow-up bug:
https://bugs.openjdk.java.net/browse/JDK-8169559.) And most importantly,
because there are the specific instances listed above for leaving out
the CL or module, it could potentially be more confusing to use
shorthand. Would the user know that the module isn't listed the second
time because it's the same module or because it's the unnamed module?
On 11/10/2016 5:02 PM, David Holmes wrote:
> Hi Rachel,
> Just wondering, in the most complex case, exactly what will this new
> message look like? We seem to be including module names as well as
> classloader names, and of course class names.
> Arguably we should only add the additional info when they differ
> between the types ie if both in same classloader and same module then
> only report class name; if same loader but different module report
> module:class; if different loaders then report everything
> loader:module:class. Also not sure module version is needed at all in
> this message.
> On 11/11/2016 7:38 AM, Rachel Protacio wrote:
>> Please review this Jigsaw enhancement which adds the new format of class
>> loader names to VM ClassCastException messages. Includes an
>> updated/expanded jtreg test.
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8165550
>> Open webrev: http://cr.openjdk.java.net/~rprotacio/8165550.00/
>> Passes JPRT and jck vm and lang tests.
More information about the hotspot-runtime-dev