GMUEClab / ecj

ECJ Evolutionary Computation Toolkit
http://cs.gmu.edu/~eclab/projects/ecj/
123 stars 42 forks source link

Maven build failed #69

Open ZvikaZ opened 3 years ago

ZvikaZ commented 3 years ago

Hi. I've just tried mvn clean package on a Windows 10 machine, and the tests failed with

Concurrency config is parallel='none', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false
java.lang.instrument.IllegalClassFormatException: Error while instrumenting sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo.
        at org.jacoco.agent.rt.internal_43f5073.CoverageTransformer.transform(CoverageTransformer.java:94)
        at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:246)

...

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  13.866 s
[INFO] Finished at: 2021-02-14T19:44:12+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project ecj:
 Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ? -> [Help 1]

Furthermore, there is no .jar file in target directory.

SigmaX commented 3 years ago

Hi @ZvikaZ ---

I can't quite reproduce the problem on my Windows 10 VM (with Java 15).

When I run mvn clean package, the tests pass. I still do get a failure on the javadoc step, though, since my VM doesn't have Javadoc installed.

Any indication of which test is causing the crash? The tests are supposed to configure ECJ so that it doesn't call System.exit() when it errors, so what you're seeing is not the expected behavior, even from a test failure.

ZvikaZ commented 3 years ago

When I run it from Unix, it indeed falls on the javadoc step. But it did create a .jar file. While in Windows it failed on earlier step, and didn't even create a .jar file.

However, I've copied the .jar file from Linux to Windows, and it works fine... Maybe it makes sense to supply it also as part of the .zip/.tar.gz files? Why should the users compile it themselves, if they just want the standard ECJ?