RFR (S) : JDK-8007736 - VerifyError for use of static method in interface

Karen Kinnear karen.kinnear at oracle.com
Thu Feb 14 10:40:53 PST 2013


You are correct in that as of JDK7, -XX:+FailOverToOldVerifier is no longer supported and customers are
supposed to always have stackmaptables for any classfiles they have generated.

For customers that dynamically generate code, the conversion to generating stackmaptables often depends 
on third party libraries correctly supporting this capability as well as calling the new APIs to these libraries. 
For some customers this has meant that the conversion has taken longer than any of us would have liked. To keep those
customers running, we have not yet removed the -XX:-UseSplitVerifier flag so they are still using the
older verifier until they are ready to move on.

We would like to remove the old verifier for newer classfiles, and plan to do so. We will be using feedback
from our customers on the timing for that, so feedback is welcome. That transition has not yet completed.


On Feb 12, 2013, at 2:20 PM, Remi Forax wrote:

> On 02/12/2013 08:17 PM, Karen Kinnear wrote:
>> Code looks good. I like this length of test too :-)
>> Please check -XX:-UseSplitVerifier to see if we also need to fix the old verifier for new
>> classfiles.
>> thanks,
>> Karen
> I maybe wrong but I think that -XX:-UseSplitVerifier doesn't work if class version if >= 51,
> so you need to compile with -target 1.5
> Rémi
>> On Feb 11, 2013, at 8:21 PM, S. Bharadwaj Yadavalli wrote:
>>> On 2/11/2013 7:31 PM, David Holmes wrote:
>>>> I think verifier.cpp has it right in its existing use of NO_FAILOVER_MAJOR. I think the changes to classFileParses.cpp to correlate new features with specific Java versions are the ones that should be changed if going for global consistency. But local consistency is fine here. Besides I don't want to see JAVA_8_VERSION being defined in two different files!
>>> OK. I have updated the webrev as suggested.
>>> Code changes : http://cr.openjdk.java.net/~bharadwaj/8007736/webrev/
>>> Bug fixed    : https://jbs.oracle.com/bugs/browse/JDK-8007736
>>> Thanks,
>>> Bharadwaj
>>>> On 02/08/2013 04:57 PM, S. Bharadwaj Yadavalli wrote:
>>>>>>>>> I would like to request for code reviews for the following changes.
>>>>>>>>> Code changes : http://cr.openjdk.java.net/~bharadwaj/8007736/webrev/
>>>>>>>>> Bug fixed    : https://jbs.oracle.com/bugs/browse/JDK-8007736
>>>>>>>>> Summary of changes :
>>>>>>>>>     Java 8 allows public static interface methods. To accommodate
>>>>>>>>> for this, the proposed change modifies bytecode verification of Java
>>>>>>>>> 8 classfiles to allow invokestatic to refer to static interface
>>>>>>>>> methods in CONSTANT_InterfaceMethodref as well as static class
>>>>>>>>> methods in CONSTANT_Methodref.
>>>>>>>>> New test added :
>>>>>>>>>     A new jtreg test in hotspot/test/runtime is added.
>>>>>>>>> Testing done:
>>>>>>>>>     No new jtreg failures seen due to this change.
>>>>>>>>> Thanks,
>>>>>>>>> Bharadwaj

More information about the hotspot-runtime-dev mailing list