RFR: JDK-8065773: JDI: UOE is not thrown, when redefineClasses changes a class modifier

Gary Adams gary.adams at oracle.com
Tue Feb 5 12:17:26 UTC 2019


On 2/4/19, 8:04 PM, David Holmes wrote:
> Hi Gary,
>
> On 5/02/2019 12:01 am, Gary Adams wrote:
>> Two of the redefine classes tests (021, 023) have been on the 
>> ProblemList since they
>> were first brought into the open repos. Both tests made an incorrect 
>> assumption
>> about the access modifiers in class files. There is a single bit in 
>> the binary class file that
>> defines if an interface is public or not public (See JVMS Table 4.1-B 
>> ACC_PUBLIC).
>> When the test classes are compiled for use in the redefine operation, 
>> if a source
>> used public or protected the ACC_PUBLIC bit was set.
>>
>> Several modifiers are used in these tests to confirm 
>> UnsupportedOperationException
>> is thrown or not thrown. This proposed change simply corrects the 
>> expected results
>> according to the JVM Specification.
>>
>>    Webrev: 
>> http://cr.openjdk.java.net/~gadams/8065773/webrev.00/index.html
>
> test/hotspot/jtreg/vmTestbase/nsk/jdi/VirtualMachine/redefineClasses/redefineclasses021.java 
>
>
> 62  * Test cases 3 (private) and 4 (static) map to not public, so will
>
> "static" is not related to access modifiers so the ACC_PUBLIC bit is 
> not relevant. "static" can only be applied to (nested) member types 
> and is represented by the ACC_STATIC bit as per JVMS "Table 4.7.6-A. 
> Nested class access and property flags".
>
> What this testcase does is add "static" to a nested interface and 
> expects JVM TI to check if the class modifier has changed. But the 
> "static" is not encoded in the class "access flags", but in the inner 
> class attribute (inner_class_access_flags). To me this testcase should 
> throw UOE, but JVM TI is not checking the right flags.
>
> David
I think the test is demonstrating that static does not change the 
ACC_PUBLIC bit.

This changeset does not change the handling of that testcase.


More information about the serviceability-dev mailing list