Reviewer and committer request for 7198496
Paul Sandoz
paul.sandoz at oracle.com
Thu Oct 4 08:52:52 UTC 2012
On Oct 4, 2012, at 10:14 AM, David Holmes <david.holmes at oracle.com> wrote:
>> I am not sure i agree. The TCCL can be set to null and that has significance as per the JavaDoc:
>>
>> * @param cl
>> * the context ClassLoader for this Thread, or null indicating the
>> * system class loader (or, failing that, the bootstrap class loader)
>> *
>> * @throws SecurityException
>> * if the current thread cannot set the context ClassLoader
>> *
>> * @since 1.2
>> */
>> public void setContextClassLoader(ClassLoader cl) {
>
> Sorry but that is just the dual incorrect statement of what is in getContextClassLoader. It is not a meaningful description, in fact it is incorrect because null only ever means the bootstrap loader, never the system class loader - and the null can't mean two different things.
> And what is "or failing that" supposed to mean?
>
I presume it means if the system CL is null.
I would interpret the JavaDoc as follows: if I set the TCCL to null on a thread i would expect any consumer of the TCCL for that thread to first use the system CL. Which matches the behaviour of how SL is documented.
> These parts of the javadoc for get/setContextClassLoader are simply wrong.
>
Wrong or not because of such JavaDoc developers have been coding using TCCL with certain expectations of "null" different to that of just meaning the bootstrap CL.
How would you propose to fix it?
Did i tell you i really dislike TCCL :-)
Paul.
More information about the core-libs-dev
mailing list