bug 6693236 fix

Rémi Forax forax at univ-mlv.fr
Thu Jul 8 04:03:50 PDT 2010


Le 08/07/2010 12:13, David Holmes a écrit :
> Rémi Forax said the following on 07/08/10 19:55:
>> Hi David,
>> I've no problem with the fact that the default configuration of jdk7
>> mandate to use of the split verifier.
>> But the patch for bug 6693236 also make FailOverOldVerifier command 
>> line flag useless.
>>
>> I think it's an error. FailOverOldVerifier should "fail over the old 
>> verifier" and not be silently ignored.
>
> For Java 7 you're not permitted to failover to the old verifier so the 
> choices are to:
>
> a) silently ignore it
> b) ignore it but issue a warning
> c) refuse to start the VM
>
> I presume you would prefer (b) or (c)?
>
> David

Hotspot has already some flags that modify the behavoir of the VM
in a way that is not fully compatible with the Java spec.
I believe that RelaxAccessControlCheck is one of those.

FailOverOldVerifier is a flag that already exists and
being able to fail over the old verifier will ease the transition
(and debugging) for all developers that generate bytecode at runtime
until they modify their code to generate stack map frames.

Rémi


>
>>
>> Rémi
>>
>>
>> Le 08/07/2010 05:55, David Holmes a écrit :
>>> Hi Remi,
>>>
>>> As noone has commented on this let me :)
>>>
>>> As the bug report describes:
>>>
>>> According to 4.11.1 paragraph of JVMS3
>>> "A class file whose version number is greater than to 50.0
>>> must be verified using the typechecker rules"
>>>
>>> So strictly speaking 1.6 was not compliant with the spec for 
>>> practical reasons, but this non-compliance has been removed for Java 7.
>>>
>>> David Holmes
>>>
>>> Rémi Forax said the following on 06/27/10 23:45:
>>>> Hello all,
>>>> 1.7bb99 contains a patch for bug 6693236.
>>>> http://hg.openjdk.java.net/jdk7/jdk7/hotspot/rev/e40a3601bc1f
>>>>
>>>> This change has a big impact for all projects that does bytecode 
>>>> instrumentation
>>>> because it requires to generate stackmap information for classfile 
>>>> 51.0.
>>>>
>>>> During 1.6 time frame, the command line flag FailOverToOldVerifier 
>>>> was added
>>>> to ease the transition. (see https://jdk.dev.java.net/verifier.html  )
>>>> Later it was decided to enable that flag by default for 1.6.
>>>>
>>>> The patch deactivates type inference for classfile 51.0,
>>>> I have no problem with that,
>>>> but it also deactivates FailOverToOldVerifier flag for classfile 51.0.
>>>>
>>>> I want to know if there a reason to deactivate the command line flag
>>>> or if it's just a side-effect of the fix.
>>>>
>>>> Rémi
>>>>
>>>>
>>>>
>>>>
>>



More information about the hotspot-runtime-dev mailing list