Expecting a stackmap frame at branch target

Keith McGuigan keith.mcguigan at oracle.com
Tue Sep 13 14:12:12 PDT 2011


The latter.  New features in jdk7 require the use of the type-checking  
verifier -- which is what the cobertura instrumentation appears to be  
running afoul of.

--
- Keith

On Sep 13, 2011, at 4:57 PM, Frédéric Camblor wrote:

> Alan,
>
> Woudn't there any -XX JVM parameter, on jdk7, allowing to get back  
> jdk6
> strategy about stack map tables ?
> Or maybe stack map tables _must_ be ok starting from jdk7 (due to  
> class file
> specifications for example) ?
>
> Frédéric Camblor  <http://fcamblor.wordpress.com/>
> <http://www.twitter.com/fcamblor>
> Bordeaux JUG <http://bordeauxjug.org/> Board member
> Jenkins <http://jenkins-ci.org/> community member & plugin commiter
>
>
> 2011/9/12 Frédéric Camblor <fcamblor at gmail.com>
>
>> Hi Alan,
>>
>> Thanks for you reply, you helped me to point out problem was about
>> cobertura instrumentation which looks not compatible with Java 7
>>
>> I'll raise an issue on this topic on their issue tracker :)
>>
>> Frédéric Camblor  <http://fcamblor.wordpress.com/> <http://www.twitter.com/fcamblor 
>> >
>> Bordeaux JUG <http://bordeauxjug.org/> Board member
>> Jenkins <http://jenkins-ci.org/> community member & plugin commiter
>>
>>
>> 2011/9/12 Alan Bateman <Alan.Bateman at oracle.com>
>>
>>> Frédéric Camblor wrote:
>>>
>>>> Hi everyone !
>>>>
>>>> I just migrated to openjdk 7 on my project and, just after the  
>>>> upgrade,
>>>> most
>>>> of my unit test were in failure, throwing following exception :
>>>>
>>>> java.lang.VerifyError: Expecting a stackmap frame at branch  
>>>> target 81
>>>> in method  
>>>> fr.fsh.bbeeg.common.config.**BBEEGConfiguration.<init>()V at
>>>> offset 44
>>>>
>>>>
>>>> When I go back to jdk 6, every tests are back to green :-)
>>>>
>>>>
>>> Use od -x to look at the class file to see which class version it  
>>> is.
>>> Class files >= version 51 are verified (exclusively) by the type  
>>> checking
>>> verifier whereas with version 50 then if the verification fails it  
>>> falls
>>> back to the old type inferencing verifier. If you have something  
>>> modifying
>>> the class files then maybe it isn't updating the stack map tables  
>>> and that
>>> would explain the error. For your jdk6 test runs then try running  
>>> with
>>> -XX:-FailOverToOldVerifier and see if fails too.
>>>
>>> -Alan.
>>>
>>
>>



More information about the jdk7-dev mailing list