jdk7 support

  • Pillar

    Pillar - 2012-03-10

    Hi Vlad Roubtsov,

    I'm really love Emma. In my daily work, I need to use
    Emma to count the code coverage of my code.
    I have to say Emma is one of the best I've used. I'm
    preciate thank you contribute to open source community.

    Recently the company\'s projects will be migrated to JDK7.
    Due to the new version of the JVM for type-checking is more
    so after instrument of the class can not work. The main
    question is that LocalVariableTable and StackMapTable is not
    correctly adjusted.

    I did some work to fix these problem. I took the
    Common-Lang project to test it, it seems to work well, but
    I'm not sure.
    It needs the large-scale test.

    Main changelog:

    1. add StackMapTable processing(include read , write ,
    adjust and create)
    2. add LocalVariableTable processing(adjust)
    3. add LocalVariableTypeTable processing(if contains
    generic reference in class)
    4. add there new types of constantpool(for jdk7 new feature)
    5. add new instruction invokedynamic

    I decided to contribute it. Compares with your
    contribution, It is unworthy of being mentioned. It is my
    great honor and pleasure If I can join to this project.
    I expect from your reply.

  • Pillar

    Pillar - 2012-03-10

    Main changelog:
    4. add three new types of constantpool(for jdk7 new feature)
    6. add a new option instr.jdk7_support

  • Jeffrey M

    Jeffrey M - 2012-05-10

    Hello Pillar,

    My company has been using Emma, and we have recently moved our development to JDK7. Can you please provide your patches to get Emma working on JDK7? We have been in touch with Vlad, and he is willing to merge your changes into the project, but we need the patch from you.



  • Pillar

    Pillar - 2012-05-18

    Hi Jeffery,

       I have not checked my private mailbox for a long time because I'm up to my ears in work. I'm so sorry to have delayed writing back to you.

       Today I saw your message from sourceforge. I feel very pleased that finally someone concerned about this matter.

       Because the product from my company has finally decided to compile source code from jdk6. So I have not followed up this thing,
    also does not have more feedbacks from customers.
             You need to set a  property. instr.jdk7_support=true.
                     <emma enabled="${emma.enabled}">
                             <instr instrpathref="compile.classpath" destdir="${out.instr.dir}" metadatafile="${functiontest.jdk7.offline.report.dir}/metadata.emma" merge="true" />
                             <property name='instr.jdk7_support' value='true' />
                             <property name='instr.exclude_synthetic_classes' value='true' />
                             <property name='instr.exclude_enum_classes' value='true' />

       Look forward to your suggestion.

    Many thanks,


  • rguo

    rguo - 2012-05-30

    Thanks for the update! We faced the same issue with JDK7, appreciate!

  • Pillar

    Pillar - 2012-05-31

    2012.5.31 build:
        1.fixed a big problem.
             When initializes the input frame of the first basic block from the method descriptor, if current method is constructor, should be insert into UninitializedThis_variable_info instead of Object_variable_info.
        2. add instr.exclude_enum_classes and instr.exclude_synthetic_classes properties.
             You can get the 100% coverage report on enum type and class.

    download address:

  • Jeffrey M

    Jeffrey M - 2012-05-31

    Hi Pillar,

    Thanks again for your efforts! The latest fix is working very well for us now.

    We really appreciate the work you've done to get Emma going again.



  • Pillar

    Pillar - 2012-06-27

    The downloading of the patch is temporarily ceased until the source code is submitted to sourceforge repository.

  • Jesse Glick

    Jesse Glick - 2012-07-13

    By the way JaCoCo supports JDK 7 already.

  • Anonymous

    Anonymous - 2012-09-18

    What is an status of this? I woul dlike to update packages for fedora, but I'mnot able to confirm in which sources is patch applied and in which is not (in base fedora sources is defnietly not, becasue  last modification in repository we are packing   was in 2005 - https://sourceforge.net/projects/emma/files/ )

  • Anonymous

    Anonymous - 2012-09-19

    Also the http://emma.cvs.sourceforge.net/viewvc/emma/emma/ looks very long untouched :(

    In case that emma is not goiiong to be updated, do you mind to publish the patches?


Log in to post a comment.