If you dump data after every test case and if there is a huge number of them this explains why your exec files are growing.
Sure, if you use append=false the you will only see the coverage data from the last execution A solution would be to merge exec data after every run with JaCoCo's merge functionality. > Is there a way to modify .exec file manually ? So what do you want to modify? On 2019-05-24 10:36, Renu Verma wrote: > hmm.. yes have 2 services started with jacoc agent attached and each dumping > to separate exec files. > And Myprojects has huge number of tests and each test when runs in regression > start and stop services and dump data according to <host>.exec but now my > worry is if 2 tests runs on same host only latest classes will be dump on > exec file with append=false. > Is there a way to modify .exec file manually ? > > On Fri, May 24, 2019 at 1:31 PM Marc Hoffmann <[email protected]> > wrote: > > You probably need a clear strategy when to dump execution data. A typical > setup is: > > * Launch all services with JaCoCo agent attached > * Execute all tests > * Trigger exec dump for each service > > Note that append=false can only be used when each service dumps to separate > exec file. Otherwise data from other services will be overwritten. > > On 2019-05-24 09:56, Renu Verma wrote: > :) I couldn't upload a 9GB file... > Yes, I tried cli and find out multiple sessions entries with same classes > appended to the .exec file. Now I am using append=false with jacocoagent > this might resolve this issue. > > On Fri, May 24, 2019 at 12:55 PM Marc R. Hoffmann > <[email protected]> wrote: > Oh no, please don't. We will not process this amount of data for you. > > Instead explore the execfile locally with our command line utility [1] > execinfo. You will probably get an idea why it grows that big if you see the > sessions and classes appended to the file. > > Regards, > -marc > > Am Montag, 20. Mai 2019 10:57:57 UTC+2 schrieb rverm: > File size is almost ~8G. Will try to upload it here. > > On Friday, May 17, 2019 at 4:43:27 PM UTC+5:30, Evgeny Mandrikov wrote: > > On Friday, May 17, 2019 at 10:20:28 AM UTC+2, rverm wrote: > > The /tmp/abcuser/myprojectcoverage_.exec file which is getting created is too > big in size with a lot of session entries which might be causing the > corruption. > > IMO this is very strange statement - how size can cause corruption? > unless if you are running out of space, but then how multiple files would > help? > what is "too big" exactly? > > Is there a way I can limit .exec file size and when given size is reached > create new .exec file ? > > (like loggers /tmp/abcuser/myprojectcoverage_1.exec > /tmp/abcuser/myprojectcoverage_2.exec /tmp/abcuser/myprojectcoverage_3.exec > and so on) > > In addition to what Marc said, let me point that all available options are > documented - https://www.jacoco.org/jacoco/trunk/doc/ > > On Tuesday, May 14, 2019 at 5:13:52 PM UTC+5:30, rverm wrote: > Thanks for the help! will check what is causing the issue. > > On Monday, May 13, 2019 at 8:46:51 PM UTC+5:30, Evgeny Mandrikov wrote: > > We can't tell you what causes corruption of file, because just snippet of > your build.gradle is not enough to reproduce this. There are many potential > reasons, listing some: > > * something else performs access to this file, ignoring lock held by JaCoCo > agent > * including case when multiple JaCoCo agents write to the same file, while > filesystem doesn't properly support locking > * including case when JVM running one of such agents is not terminated > gracefully but forcibly killed > * not forgetting the case of network filesystems > * including case of Docker volumes, which can cause troubles to certain types > of file access - for example > https://stackoverflow.com/questions/56066775/docker-container-cant-run-jacoco-agent-with-java-12#comment98799428_56066775 > * maybe something else touches/write to this file > * disk is broken > * etc, etc > > On Monday, May 13, 2019 at 1:07:41 PM UTC+2, rverm wrote: > > Thank you for looking into this issue. > I am running jvm with jacocoagent which is creating this file but I ail to > understand why file is getting corrupted. > > -javaagent:/tmp/jacoco/jacocoagent.jar=destfile=/tmp/myproject_coverage/myprojectcoverage_${HOST}.exec,append=true,output=file,inclbootstrapclasses=true,inclnolocationclasses=true" > > > On Monday, May 13, 2019 at 1:33:58 PM UTC+5:30, Marc R. Hoffmann wrote: > > org.gradle.api.tasks.TaskExecutionException: Execution failed for task > ':myproject:jacocoMergeTest'. > Caused by: : Unable to read /tmp/abcuser/myprojectcoverage_.exec > Caused by: java.io.IOException: Unknown block type 0. > > ==> myprojectcoverage_.exec is not a valid exec file. > > On 2019-05-13 09:44, rverm wrote: > > This is the output with --stacktrace > > FAILURE: Build failed with an exception. > > * What went wrong: > Execution failed for task ':myproject:jacocoMergeTest'. >> Unable to read /tmp/abcuser/myprojectcoverage_.exec > > * Try: > Run with --info or --debug option to get more log output. > > * Exception is: > org.gradle.api.tasks.TaskExecutionException: Execution failed for task > ':myproject:jacocoMergeTest'. > at > org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:98) > > at > org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:68) > > at > org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) > > at > org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) > > at > org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) > > at > org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46) > > at > org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51) > > at > org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) > > at > org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) > > at > org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) > > at > org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236) > > at > org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228) > > at org.gradle.internal.Transformers$4.transform(Transformers.java:169) > > at > org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) > > at > org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61) > > at > org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228) > > at > org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215) > > at > org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77) > > at > org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58) > > at > org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32) > > at > org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113) > > at > org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37) > > at > org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) > > at > org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23) > > at > org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43) > > at > org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) > > at > org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) > > at > org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30) > > at > org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:230) > > at > org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:227) > > at org.gradle.internal.Transformers$4.transform(Transformers.java:169) > > at > org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) > > at > org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56) > > at > org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:161) > > at > org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:112) > > at > org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:95) > > at > org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:66) > > at > org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28) > > at > org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) > > at > org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41) > > at > org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) > > at > org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75) > > at > org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49) > > at > org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49) > > at > org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31) > > at > org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67) > > at > org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) > > at > org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) > > at > org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37) > > at > org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) > > at > org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) > > at > org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) > > at > org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) > > at > org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) > > at > org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74) > > at > org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72) > > at org.gradle.util.Swapper.swap(Swapper.java:38) > > at > org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) > > at > org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) > > at > org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) > > at > org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) > > at > org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) > > at > org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) > > at > org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) > > at > org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72) > > at > org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) > > at > org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) > > at > org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50) > > at > org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) > > at > org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) > > at > org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46) > > Caused by: : Unable to read /tmp/abcuser/myprojectcoverage_.exec > > at org.jacoco.ant.MergeTask.load(MergeTask.java:87) > > at org.jacoco.ant.MergeTask.execute(MergeTask.java:67) > > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) > > at > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) > > at > org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:78) > > at > org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:464) > > at > org.gradle.internal.metaobject.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:176) > > at > org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163) > > at > org.gradle.api.internal.project.antbuilder.AntBuilderDelegate.nodeCompleted(AntBuilderDelegate.java:118) > > at org.gradle.internal.jacoco.AntJacocoMerge$1.doCall(AntJacocoMerge.java:46) > at > org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71) > > at > org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:53) > > at > org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder$2.execute(DefaultIsolatedAntBuilder.java:151) > > at > org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder$2.execute(DefaultIsolatedAntBuilder.java:133) > > at > org.gradle.api.internal.project.antbuilder.ClassPathToClassLoaderCache.withCachedClassLoader(ClassPathToClassLoaderCache.java:134) > > at > org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder.execute(DefaultIsolatedAntBuilder.java:127) > > at org.gradle.internal.jacoco.AntJacocoMerge.execute(AntJacocoMerge.java:37) > at org.gradle.testing.jacoco.tasks.JacocoMerge.merge(JacocoMerge.java:79) > at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) > at > org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:141) > > at > org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134) > > at > org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123) > > at > org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:692) > > at > org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:675) > > at > org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:115) > > at > org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:109) > > at org.gradle.internal.Transformers$4.transform(Transformers.java:169) > at > org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) > > at > org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56) > > at > org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:109) > > at > org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:90) > > ... 70 more > Caused by: java.io.IOException: Unknown block type 0. > at > org.jacoco.core.data.ExecutionDataReader.readBlock(ExecutionDataReader.java:118) > > at org.jacoco.core.data.ExecutionDataReader.read(ExecutionDataReader.java:92) > at org.jacoco.core.tools.ExecFileLoader.load(ExecFileLoader.java:59) > at org.jacoco.ant.MergeTask.load(MergeTask.java:85) > ... 100 more > > BUILD FAILED > > Total time: 1 mins 25.713 secs > On Monday, May 13, 2019 at 12:56:42 PM UTC+5:30, Marc R. Hoffmann wrote: > > * Try: > > Run with --stacktrace option to get the stack trace. > > On 12. May 2019, at 22:09, rverm <[email protected]> wrote: > > 21:39:54.545 [DEBUG] > [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] > Removed task artifact state for {} from context. > 21:39:54.545 [DEBUG] > [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] > Finished executing task ':myproject:jacocoMergeTest' > 21:39:54.545 [LIFECYCLE] [class > org.gradle.internal.buildevents.TaskExecutionLogger] > :myproject:jacocoMergeTest FAILED > > 21:39:54.546 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] > :myproject:jacocoMergeTest (Thread[Daemon worker Thread 3,5,main]) completed. > Took 6 mins 4.752 secs. > > > 21:39:54.546 [DEBUG] > [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker > root.1 completed (0 in use) > 21:39:54.546 [DEBUG] > [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker > [Thread[Daemon worker Thread 3,5,main]] finished, busy: 6 mins 4.752 secs, > idle: 0.0 secs > > > 21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > > > 21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > FAILURE: Build failed with an exception. > > 21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > > > 21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > * What went wrong: > > 21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Execution failed for task ':myproject:jacocoMergeTest'. > > 21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > > Unable to read /tmp/myprojectcoverage.exec > 21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > > > 21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > * Try: > > 21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Run with --stacktrace option to get the stack trace. > > 21:39:54.547 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] > > > 21:39:54.547 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] > BUILD FAILED > > Using Jacoco 0.8.3 version > > within build.gradle > > def allTestCoverageFile = "/tmp/abcuser/allMerge.exec" > apply plugin: "org.sonarqube" > apply plugin: "jacoco" > > jacoco { > toolVersion = "0.8.3" > } > sonarqube { > properties { > property "sonar.projectKey", "myproject" > property "sonar.projectName", "myproject" > property 'sonar.host.url', 'http://url' > property "sonar.jacoco.reportPaths", 'allTestCoverageFile' > }} > > task jacocoMergeTest(type: JacocoMerge) { > destinationFile = file(allTestCoverageFile) > executionData = project.fileTree(dir: '/tmp/abcuser/', include:'*.exec') > } > task jacocoMerge(dependsOn: ['jacocoMergeTest']) { > } > subprojects { > sonarqube { > properties { > property "sonar.jacoco.reportPath", "allTestCoverageFile" > }}} > > -- > 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/97afe793-294a-490e-98ec-9e1d0fc0958f%40googlegroups.com > [2]. > For more options, visit https://groups.google.com/d/optout. -- 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/002bfae5-f546-4ab3-a448-37b89eef20fb%40googlegroups.com [3]. For more options, visit https://groups.google.com/d/optout. -- 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/da63127e-4829-4583-8652-5bddc60710a5%40googlegroups.com [4]. -- 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/CAPmY2%2BAHqR_h8%3DPM5MQBbwiH%3D4W4ab-mHKR8uwrtKN55021yKQ%40mail.gmail.com [5]. -- 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/af01f269e018391d7cea03c9640ebab4%40mountainminds.com [6]. -- 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/CAPmY2%2BBu%2Bw6qQcoiDL%3Ds4kY7_O%2B4VDNnZzaE-m%2BSxgz-B97xHA%40mail.gmail.com [7]. Links: ------ [1] https://www.jacoco.org/jacoco/trunk/doc/cli.html [2] https://groups.google.com/d/msgid/jacoco/97afe793-294a-490e-98ec-9e1d0fc0958f%40googlegroups.com?utm_medium=email&utm_source=footer [3] https://groups.google.com/d/msgid/jacoco/002bfae5-f546-4ab3-a448-37b89eef20fb%40googlegroups.com?utm_medium=email&utm_source=footer [4] https://groups.google.com/d/msgid/jacoco/da63127e-4829-4583-8652-5bddc60710a5%40googlegroups.com?utm_medium=email&utm_source=footer [5] https://groups.google.com/d/msgid/jacoco/CAPmY2%2BAHqR_h8%3DPM5MQBbwiH%3D4W4ab-mHKR8uwrtKN55021yKQ%40mail.gmail.com?utm_medium=email&utm_source=footer [6] https://groups.google.com/d/msgid/jacoco/af01f269e018391d7cea03c9640ebab4%40mountainminds.com?utm_medium=email&utm_source=footer [7] https://groups.google.com/d/msgid/jacoco/CAPmY2%2BBu%2Bw6qQcoiDL%3Ds4kY7_O%2B4VDNnZzaE-m%2BSxgz-B97xHA%40mail.gmail.com?utm_medium=email&utm_source=footer -- 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/ca7ed6887506f777fab62d56571a6568%40mountainminds.com.
