Request for review (#4) 7174978: NPG: Fix bactrace builder for class redefinition

Coleen Phillimore coleen.phillimore at oracle.com
Wed Jan 16 12:48:08 PST 2013


On 1/16/2013 2:19 AM, David Holmes wrote:
> Hi Coleen,
>
> A couple of follow ups ...

See inline comments.   New webrev:

http://cr.openjdk.java.net/~coleenp/7174978_6/

>
> On 16/01/2013 7:12 AM, Coleen Phillimore wrote:
>>> Copyrights to 2013 :)
>>>
>>
>> It's unclear whether we have to do this. I think there is going to be
>> some RE process that fixes these files.
>
> I'll believe it when I see it :)

I haven't seen any recent pronouncements about this.  I hate to see 
webrevs with copyright changes though because I have to scroll down for 
the "real" changes.    I have a new "commit" script  now though, others 
are welcome to copy it:

#/bin/csh -f
hg status | grep "^M" | sed -e "s/M//" >file.list
foreach f (`cat file.list`)
   echo $f
   sed -e "s/Copyright (c) \([0-9][0-9][0-9][0-9]\), 
[0-9][0-9][0-9][0-9], Oracle/Copyright (c) \1, 2013, Oracle/"  \
       -e "s/Copyright (c) \([0-9][0-9][0-9][0-9]\), Oracle/Copyright 
(c) \1, 2013, Oracle/" <$f >$f.new
   diff $f $f.new
   cp $f.new $f
end
hg commit


>
>>> src/share/vm/oops/constantPool.hpp
>>>
>>> ! void add_version(int version) {
>>> ! if (version == -1) {
>>> ! _saved._version = version; // keep overflow
>>> ! } else {
>>> ! int new_version = version++;
>>> ! _saved._version = version == INT_MAX ? -1 : version;
>>> ! }
>>> ! }
>>>
>>> new_version is unused here but I think you meant to do
>>>
>>> _saved._version = new_version == INT_MAX ? -1 : version;
>>>
>>
>> This was a pre-code-review cleanup... I didn't mean to assign version++
>> into new_version. The second line stays the same. I retested this fix.
>
> I'm unclear what the final form of this code now looks like.

   void add_version(int version)           {
     if (version == -1) {
       _saved._version = version;  // keep overflow
     } else {
       version++;
       _saved._version = (version == INT_MAX) ? -1 : version;
     }
   }

>
>> This code is only called for exceptions thrown at initialization time.
>> It's hard to test this code since most exceptions during initialization
>> in universe_post_init() cause
>>
>> # Internal Error
>> (/java/east/u1/cphillim/hg/rt.bt2-clean/src/share/vm/interpreter/linkResolver.cpp:902), 
>>
>> pid=10369, tid=47170653824768
>> # assert(resolved_method->method_holder()->is_linked()) failed: must be
>> linked
>> #
>>
>> Should be another CR, which I thought we'd already fixed!
>
> We did :) But we need to fix that error message so it tells us which 
> class has the problem (assert really needs to take a format string as 
> an arg :( ). We fixed the issue with java.lang.Class not being linked 
> when trying to construct a Throwable. Maybe it is Throwable or one of 
> the other exception types that is the problem.

Filed a bug.

Thanks,
Coleen
>
> Cheers,
> David



More information about the hotspot-runtime-dev mailing list