I have tried putting my jacocoagent before spring instrument agent but that 
as well did not help. I started getting error on gradle classes stating 
these classes are already instrumented.

java.lang.instrument.IllegalClassFormatException: Error while instrumenting 
class jarjar/org/gradle/process/internal/launcher/GradleWorkerMain.
> Buildiat 
org.jacoco.agent.rt.internal_14f7ee5.CoverageTransformer.transform(CoverageTransformer.java:93)
        at 
sun.instrument.TransformerManager.transform(TransformerManager.java:169)
        at 
sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Caused by: java.io.IOException: Error while instrumenting class 
jarjar/org/gradle/process/internal/launcher/GradleWorkerMain.
        at 
org.jacoco.agent.rt.internal_14f7ee5.core.instr.Instrumenter.instrumentError(Instrumenter.java:152)
        at 
org.jacoco.agent.rt.internal_14f7ee5.core.instr.Instrumenter.instrument(Instrumenter.java:103)
        at 
org.jacoco.agent.rt.internal_14f7ee5.CoverageTransformer.transform(CoverageTransformer.java:91)
        ... 14 more
Caused by: java.lang.IllegalStateException: Class 
jarjar/org/gradle/process/internal/launcher/GradleWorkerMain is already 
instrumented.

once after finishing that (if i ignore these errors), I am still getting 
errors in execution data mismatch. I have tried offline instrumentation as 
well but did not help.

On Tuesday, 18 July 2017 06:30:52 UTC+5:30, Evgeny Mandrikov wrote:
>
> According to line
>
> jvmArgs "-javaagent:$springInstrument"
>
> you use another agent that I assume also performs bytecode 
> transformations. Please make sure that JaCoCo agent is listed first in the 
> command line before any other agents, so that it will see unmodified 
> classes.
>
> Also should be noted that seems that Gradle JaCoCo Plugin does not enforce 
> this automatically, so please report this to Gradle, who develops the 
> plugin.
>
> Offline instrumentation as well as mismatch of classes are described in 
> documentation and there are plenty of topics in mailing list about this ( 
> e.g. https://groups.google.com/d/msg/jacoco/5IqM4AibmT8/-x5w4kU9BAAJ ) as 
> well as in internet. There is nothing to add to all this without having an 
> ability to reproduce your difficulty with proper configuration.
>
> On Friday, July 14, 2017 at 1:03:00 PM UTC+2, prateek gupta wrote:
>>
>> I am trying to generate coverage report using jacoco but unable to do so 
>> because of following error :
>>
>> [ant:jacocoReport] Classes in bundle 'pubmindApp' do no match with 
>> execution data. For report generation the same class files must be used as 
>> at runtime.
>>
>> Below is my current build gradle :
>>
>> configurations {
>>     agentlib
>> }
>> ext{
>> isBuildMaster = true
>> jacocoversion = '0.7.6.201602180812'
>> }
>> if (hasProperty('extraChecks') || isBuildMaster == true) {
>>   jacocoTestReport {
>>    def coverageSourceDirs = ['src/main/java']
>>     reports {
>>         xml.enabled true
>>         html.enabled true
>>         csv.enabled false
>>     }
>>     sourceDirectories = files(coverageSourceDirs)
>>   }
>>   build.dependsOn(jacocoTestReport)
>> }
>>
>> jacoco {
>> toolVersion = jacocoversion
>> }
>>
>> test {
>> jacoco {
>>             destinationFile = file("$buildDir/jacoco/test.exec")
>>             classDumpFile = file("$buildDir/jacoco/classpathdumps")
>>     }
>>     ext.agentlibs = configurations.agentlib.collect {it}
>>     ext.springInstrument = agentlibs[0]
>>     // Uncomment the following line to see the test output on console 
>>     //testLogging.showStandardStreams = true
>>     println("springframework instrument path: $springInstrument")
>>     jvmArgs "-Xms256m"
>>     jvmArgs "-Xmx4096m"
>>     jvmArgs "-XX:MaxPermSize=256m"
>>     jvmArgs 
>> "-Djava.library.path=${root}/java/lib:${service_root}/home/tivo/lib"
>>     jvmArgs "-javaagent:$springInstrument"
>>     include "**/Test*.class"
>>     exclude 'com/tivo/service/pubmind/trio/TestVodCategoryOperation.class'
>>    exclude 'com/tivo/service/pubmind/trio/TestVodCatalogOperation.class'
>>     environment('SERVICE_ROOT', service_root);
>>     environment('SRCROOT', srcroot);
>>     doFirst {
>>       if(System.getProperty('extraTests') == '1'){ 
>>         include "**/ExtraTest*.class"
>>         println "Include  extra tests";
>>       } else {
>>         println "Skipping extra test, extraTests not enabled";
>>       }
>>    }
>> }
>>
>> test.finalizedBy jacocoTestReport
>>
>> I have tried using offline instrumentation, creating classdump but still 
>> the same error keeps on popping up. Please help out
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jacoco/dca1c92f-0261-41b4-af27-ed1896318204%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to