RFR (S) 8059677: Thread.getName() instantiates Strings

Aleksey Shipilev aleksey.shipilev at oracle.com
Wed Nov 12 10:23:32 UTC 2014


Hi David,

On 12.11.2014 07:48, David Holmes wrote:
> On 12/11/2014 12:40 AM, Aleksey Shipilev wrote:
> All looks good to me.

Thanks for the review!

> But I also noticed this strange (to me) assertion in javaClasses.cpp
> 
>  void java_lang_Thread::set_name(oop java_thread, oop name) {
>     assert(java_thread->obj_field(_name_offset) == NULL, "name should be
> NULL");
>     java_thread->obj_field_put(_name_offset, name);
>   }
> 
> and on investigation it seems like this is dead code - I couldn't locate
> a call to java_lang_Thread::set_name ?? It would only be usable on an
> attaching thread (else name can't be null) and we pass the name to the
> Thread constructor in that case.

set_name is not used, as I mentioned earlier -- that makes the change
even more "safe". I was even tempted to drop the setter completely, but
it would break the symmetry against other setters and getters. I dropped
the assert at set_name in this update:
  http://cr.openjdk.java.net/~shade/8059677/webrev.03.hs/
  http://cr.openjdk.java.net/~shade/8059677/webrev.03.jdk/

The only difference against the previous version is the dropped assert,
so I haven't re-spinned the tests.

Thanks,
-Aleksey.




More information about the core-libs-dev mailing list