Skip to content

Errors occur when running mvn package -DskipTests and localizing bugs with flacoco jar #120

@DehengYang

Description

@DehengYang

Dear Sirs,

I am very interested in this project and I am trying to package it on my pc for fault localization. I cloned this project and then ran mvn package -DskipTests, but it reports the following two types of compilation errors:

[ERROR] /home/apr/tools/flacoco/src/main/java/fr/spoonlabs/flacoco/core/test/strategies/testrunner/TestRunnerStrategy.java:[11,24] package org.apache.log4j does not exist
[ERROR] /home/apr/tools/flacoco/src/main/java/fr/spoonlabs/flacoco/core/test/strategies/testrunner/TestRunnerStrategy.java:[29,13] cannot find symbol
[ERROR] symbol: class Logger

[ERROR] /home/apr/tools/flacoco/src/main/java/fr/spoonlabs/flacoco/core/coverage/CoverageMatrix.java:[15,31] package org.jacoco.core.runtime does not exist

I think this could be resolved by adding the following dependencies into pom.xml:

	<dependency>
	    <groupId>log4j</groupId>
	    <artifactId>log4j</artifactId>
	    <version>1.2.17</version>
	</dependency>

	<dependency>
	    <groupId>org.jacoco</groupId>
	    <artifactId>org.jacoco.core</artifactId>
	    <version>0.8.7</version>
	</dependency>

With this workaround, I have used the flacoco-1.0.1-SNAPSHOT-jar-with-dependencies.jar to localize a bug in alibaba/fastjson@96d0ee5 with the following command:

flacocoPath=/home/apr/tools/flacoco/target/flacoco-1.0.1-SNAPSHOT-jar-with-dependencies.jar
projPath=/home/apr/fastjson

java -jar $flacocoPath --projectpath $projPath

It failed with the following error:

[1522] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.bvt.issue_1700.Issue1701
[1526] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.bvt.cglib.TestCglib
[1531] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.test.JsonIteratorImageTest
[1531] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.test.Issue3805
[1533] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.test.codec.Jackson2AfterBurnCodec
[1538] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.test.benchmark.jdk10.generated.StringBenchmark_testParseJsonComp_jmhTest
[1539] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.test.benchmark.jdk10.generated.StringBenchmark_jackson_testParseJson_jmhTest
[1539] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.test.benchmark.jdk10.generated.StringBenchmark_testParseJson_jmhTest
[1539] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.test.benchmark.jdk10.generated.StringBenchmark_jackson_testParseJsonComp_jmhTest
[1541] WARN TestMethodFilter - NoClassDefFoundError: class com.alibaba.json.test.JSONLibXmlTest
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/jacoco/agent/rt/RT
	at eu.stamp_project.testrunner.EntryPoint.<clinit>(EntryPoint.java:868)
	at fr.spoonlabs.flacoco.core.coverage.framework.TestFrameworkStrategy.setupTestRunnerEntryPoint(TestFrameworkStrategy.java:32)
	at fr.spoonlabs.flacoco.core.coverage.framework.JUnit4Strategy.execute(JUnit4Strategy.java:25)
	at fr.spoonlabs.flacoco.core.coverage.CoverageRunner.getCoverageMatrix(CoverageRunner.java:49)
	at fr.spoonlabs.flacoco.localization.spectrum.SpectrumRunner.computeCoverageMatrix(SpectrumRunner.java:56)
	at fr.spoonlabs.flacoco.localization.spectrum.SpectrumRunner.run(SpectrumRunner.java:32)
	at fr.spoonlabs.flacoco.api.Flacoco.run(Flacoco.java:31)
	at fr.spoonlabs.flacoco.cli.FlacocoMain.call(FlacocoMain.java:157)
	at fr.spoonlabs.flacoco.cli.FlacocoMain.call(FlacocoMain.java:27)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
	at picocli.CommandLine.access$1300(CommandLine.java:145)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
	at picocli.CommandLine.execute(CommandLine.java:2078)
	at fr.spoonlabs.flacoco.cli.FlacocoMain.main(FlacocoMain.java:148)
Caused by: java.lang.ClassNotFoundException: org.jacoco.agent.rt.RT
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 17 more

Then I used the jar from the maven repo:

projPath=/home/apr/fastjson
flacocoPath=/home/apr/.m2/repository/com/github/spoonlabs/flacoco/1.0.0/flacoco-1.0.0.jar

java -cp $flacocoPath:/home/apr/tools/flacoco/target/dependency/* fr.spoonlabs.flacoco.cli.FlacocoMain --projectpath $projPath

It also failed with the same error.

Notes:

It would be much appreciated if any advice could be provided. Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions