Proposal: #ClassLoaderNames

David M. Lloyd david.lloyd at redhat.com
Mon Sep 12 15:54:51 UTC 2016


On 09/12/2016 10:12 AM, Mark Reinhold wrote:
> Issue summary
> -------------
>
>   #ClassLoaderNames --- Enhance class loaders to have optional names, so
>   that external module systems can provide better diagnostics.  When the
>   run-time system generates a stack trace or an exception message that
>   mentions a module name and version, if present, then it should also
>   insert the name of that module's class loader, if present. [1]
>
> Proposal
> --------
>
> Add a string-returning `getName()` method to `java.lang.ClassLoader`
> along with a new constructor with which the name can be specified.  If a
> name is not specified when a class loader is created then it will have no
> name, i.e., the `getName` method will return `null`.  Add corresponding
> constructors to `java.net.URLClassLoader` and
> `java.security.SecureClassLoader`.
>
> Extend `java.lang.StackTraceElement` so that a stack-trace element can
> include the name of the relevant class loader, and revise its `toString`
> method to convey that name when present.
>
> Arrange for the built-in platform and application class loaders to have
> the names `"platform"` and `"app"`, respectively.  (The bootstrap class
> loader cannot be given a name since it is not reified as a `ClassLoader`
> object.)
>
>
> [1] http://openjdk.java.net/projects/jigsaw/spec/issues/#ClassLoaderNames

Looks great.  This will be very useful!

-- 
- DML


More information about the jpms-spec-experts mailing list