Open wtwhite opened 1 year ago
Puzzled that errors and don't correspond exactly to BUILD FAILURE
in logs:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ find jars -type f|sed -Ee 's/.*\.//'|sort|uniq -c
258 error
537 jar
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ echo $((258+537))
795
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ ls build.*.log|wc -l
795
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep 'BUILD FAILURE' build.*.log|wc -l
183
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep 'BUILD SUCCESS' build.*.log|wc -l
612
Indeed, some BUILD SUCCESS
es get turned into .jar.error
files anyway:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep 'BUILD SUCCESS' jars/*/*.jar.error|wc -l
75
Will look into these in more detail.
All 75 are variants of the bcel
project:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep 'BUILD SUCCESS' jars/*/*.jar.error
jars/openjdk-10.0.2/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-10.0.2/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-10.0.2/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-10.0.2/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-10.0.2/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.12/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.12/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.12/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.12/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.12/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.16/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.16/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.16/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.16/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.16/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.19/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.19/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.19/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.19/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-11.0.19/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-15.0.1/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-15.0.1/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-15.0.1/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-15.0.1/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-15.0.1/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-16.0.1/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-16.0.1/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-16.0.1/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-16.0.1/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-16.0.1/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.1/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.1/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.1/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.1/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.1/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.4/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.4/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.4/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.4/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.4/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.7/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.7/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.7/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.7/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-17.0.7/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-18.0.2/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-18.0.2/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-18.0.2/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-18.0.2/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-18.0.2/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-19.0.2/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-19.0.2/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-19.0.2/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-19.0.2/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-19.0.2/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.302/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.302/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.302/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.302/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.302/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.342/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.342/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.342/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.342/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.342/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.372/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.372/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.372/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.372/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-8.0.372/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-9.0.1/bcel-6.4.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-9.0.1/bcel-6.4.1.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-9.0.1/bcel-6.5.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-9.0.1/bcel-6.6.0.jar.error:[INFO] BUILD SUCCESS
jars/openjdk-9.0.1/bcel-6.6.1.jar.error:[INFO] BUILD SUCCESS
Some but not all of these errors are caused by the HEAD
pointing to a raw commit instead of a branch or tag:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep 'Detecting the current branch failed' jars/*/*.jar.error
jars/openjdk-10.0.2/bcel-6.4.0.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/bcel-6.4.1.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/bcel-6.5.0.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/bcel-6.6.0.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/bcel-6.6.1.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/commons-lang3-3.10.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/commons-lang3-3.11.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/commons-lang3-3.12.0.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/commons-lang3-3.8.1.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/commons-lang3-3.8.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-10.0.2/commons-lang3-3.9.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/bcel-6.4.0.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/bcel-6.4.1.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/bcel-6.5.0.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/bcel-6.6.0.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/bcel-6.6.1.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/commons-lang3-3.10.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/commons-lang3-3.11.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/commons-lang3-3.12.0.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/commons-lang3-3.8.1.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/commons-lang3-3.8.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
jars/openjdk-9.0.1/commons-lang3-3.9.jar.error:Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
wtwhite@wtwhite-vuw-vm:~/code/jcompile/dataset/commons-bcel/.git$ cat HEAD
bbaf623d750f030d186ed026dc201995145c63ec
git
thinks there are a whole bunch of changes:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/dataset/commons-bcel$ git status
HEAD detached at rel/commons-bcel-6.4.0
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .github/workflows/maven.yml
deleted: .travis.yml
modified: CONTRIBUTING.md
modified: NOTICE.txt
modified: README.md
modified: RELEASE-NOTES.txt
modified: TODO.JustIce
modified: docs/verifier/GNUmakefile
modified: docs/verifier/JustIce.lyx
modified: pom.xml
modified: src/changes/changes.xml
modified: src/conf/checkstyle-suppressions.xml
--snip--
modified: src/test/java/org/apache/bcel/generic/InstructionHandleTestCase.java
modified: src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
deleted: src/test/java/org/apache/bcel/visitors/CounterVisitor.java
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
.github/GH-ROBOTS.txt
.github/dependabot.yml
.github/workflows/codeql-analysis.yml
.github/workflows/coverage.yml
.github/workflows/scorecards-analysis.yml
?/
CODE_OF_CONDUCT.md
SECURITY.md
src/conf/pmd-ruleset.xml
src/conf/spotbugs-exclude-filter.xml
--snip--
src/test/java/org/apache/bcel/generic/LSHRTestCase.java
src/test/java/org/apache/bcel/generic/LSUBTestCase.java
src/test/java/org/apache/bcel/generic/LXORTestCase.java
no changes added to commit (use "git add" and/or "git commit -a")
And this blocks the attempt to run git checkout
:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/dataset/commons-bcel$ git checkout rel/commons-bcel-6.5.0
error: Your local changes to the following files would be overwritten by checkout:
.github/workflows/maven.yml
NOTICE.txt
README.md
RELEASE-NOTES.txt
TODO.JustIce
docs/verifier/GNUmakefile
docs/verifier/JustIce.lyx
pom.xml
src/changes/changes.xml
src/conf/checkstyle.xml
src/examples/ClassDumper.java
src/examples/HelloWorldBuilder.java
--snip--
src/main/java/org/apache/bcel/classfile/Utility.java
src/main/java/org/apache/bcel/classfile/package.html
src/main/java/org/apache/bcel/generic/AnnotationElementValueGen.java
src/main/java
error: The following untracked working tree files would be overwritten by checkout:
src/test/java/org/apache/bcel/classfile/CodeExceptionTestCase.java
src/test/java/org/apache/bcel/classfile/LocalVariableTestCase.java
src/test/java/org/apache/bcel/generic/EmptyStaticInit.java
Please move or remove them before you switch branches.
Aborting
After that checkout failure, what probably happens is that whatever version of the project was already there gets (re)built, producing a jar with the wrong version number, which makes docker-build-project.sh
think the script has failed (which it actually has):
wtwhite@wtwhite-vuw-vm:~/code/jcompile/dataset/commons-bcel$ git log -1
commit bbaf623d750f030d186ed026dc201995145c63ec (HEAD, tag: rel/commons-bcel-6.4.0, tag: commons-bcel-6.4.0-RC2)
Author: Gary Gregory <gardgregory@gmail.com>
Date: Fri Sep 20 15:08:21 2019 -0400
Update POM version numbers for Apache Commons BCEL release 6.4.0
wtwhite@wtwhite-vuw-vm:~/code/jcompile/dataset/commons-bcel$ ls target/
antrun apidocs bcel-6.7.0.jar bcel-6.7.0-sources.jar bcel-6.7.0-test-sources.jar classes generated-sources maven-archiver maven-status osgi
wtwhite@wtwhite-vuw-vm:~/code/jcompile/dataset/commons-bcel$ ls -ltr target/*.jar
-rw-r--r-- 1 wtwhite wtwhite 718804 Oct 18 15:42 target/bcel-6.7.0.jar
-rw-r--r-- 1 wtwhite wtwhite 694036 Oct 18 15:42 target/bcel-6.7.0-sources.jar
-rw-r--r-- 1 wtwhite wtwhite 182801 Oct 18 15:42 target/bcel-6.7.0-test-sources.jar
I think this means that every jar that was successfully placed in jars/
was built from the right version of the source, so we don't have to rerun any of them.
This also makes me realise that this workflow isn't parallelisable yet -- we need to check out each different tag of a repo into a separate worktree.
Starting over with a freshly unzipped dataset/
folder, it this problem affects bcel
and commons-lang
:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/FRESH/dataset$ for d in */; do echo "$d `git -C $d status|wc -l`"; done
commons-bcel/ 606
commons-codec/ 2
commons-compress/ 6
commons-configuration/ 6
commons-csv/ 6
commons-io/ 8
commons-lang/ 52
commons-net/ 6
guava/ 2
jackson-core/ 6
JSON-java/ 6
wtwhite@wtwhite-vuw-vm:~/code/jcompile/FRESH/dataset$ cd commons-lang/
wtwhite@wtwhite-vuw-vm:~/code/jcompile/FRESH/dataset/commons-lang$ git status
HEAD detached at LANG_3_8_1
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .travis.yml
modified: README.md
modified: RELEASE-NOTES.txt
modified: checkstyle.xml
deleted: findbugs-exclude-filter.xml
modified: pom.xml
modified: src/assembly/src.xml
modified: src/changes/changes.xml
modified: src/changes/release-notes.vm
modified: src/main/java/org/apache/commons/lang3/ArrayUtils.java
modified: src/main/java/org/apache/commons/lang3/CharSet.java
modified: src/main/java/org/apache/commons/lang3/ClassUtils.java
modified: src/main/java/org/apache/commons/lang3/Conversion.java
modified: src/main/java/org/apache/commons/lang3/JavaVersion.java
modified: src/main/java/org/apache/commons/lang3/LocaleUtils.java
modified: src/main/java/org/apache/commons/lang3/ObjectUtils.java
modified: src/main/java/org/apache/commons/lang3/RandomStringUtils.java
modified: src/main/java/org/apache/commons/lang3/RandomUtils.java
modified: src/main/java/org/apache/commons/lang3/SerializationUtils.java
modified: src/main/java/org/apache/commons/lang3/StringEscapeUtils.java
modified: src/main/java/org/apache/commons/lang3/StringUtils.java
modified: src/main/java/org/apache/commons/lang3/SystemUtils.java
modified: src/main/java/org/apache/commons/lang3/ThreadUtils.java
modified: src/main/java/org/apache/commons/lang3/builder/Diff.java
modified: src/main/java/org/apache/commons/lang3/builder/DiffBuilder.java
modified: src/main/java/org/apache/commons/lang3/builder/DiffResult.java
modified: src/main/java/org/apache/commons/lang3/builder/Diffable.java
modified: src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
modified: src/main/java/org/apache/commons/lang3/builder/ReflectionDiffBuilder.java
modified: src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
modified: src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java
modified: src/main/java/org/apache/commons/lang3/exception/ContextedException.java
modified: src/main/java/org/apache/commons/lang3/exception/ContextedRuntimeException.java
modified: src/main/java/org/apache/commons/lang3/exception/DefaultExceptionContext.java
modified: src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java
deleted: src/site/resources/profile.cobertura
deleted: src/test/java/org/apache/commons/lang3/test/SystemDefaults.java
deleted: src/test/java/org/apache/commons/lang3/test/SystemDefaultsSwitch.java
deleted: src/test/java/org/apache/commons/lang3/test/SystemDefaultsSwitchTest.java
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
Jenkinsfile
spotbugs-exclude-filter.xml
src/main/java/org/apache/commons/lang3/Functions.java
no changes added to commit (use "git add" and/or "git commit -a")
Just adding --force
to the git checkout
isn't enough, since (a) it won't eliminate existing untracked files, which Maven might continue to pick up, and (b) as mentioned in the previous message, trying to switch between different tags in the same worktree prevents parallelisation.
After merging #8, we get a lot more jars successfully built, though by no means all:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ find jars -type f|sed -Ee 's/.*\.//'|sort|uniq -c
119 error
676 jar
All bcel
projects now build, except for old versions with new JDKs:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ ls jars/*/bcel-*.*|wc -l
90
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ ls jars/*/bcel-*.jar|wc -l
76
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ ls jars/*/bcel-*.jar.error|wc -l
14
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ ls jars/*/bcel-*.jar.error
jars/openjdk-15.0.1/bcel-6.4.0.jar.error jars/openjdk-16.0.1/bcel-6.4.1.jar.error jars/openjdk-17.0.4/bcel-6.4.0.jar.error jars/openjdk-17.0.7/bcel-6.4.1.jar.error jars/openjdk-19.0.2/bcel-6.4.0.jar.error
jars/openjdk-15.0.1/bcel-6.4.1.jar.error jars/openjdk-17.0.1/bcel-6.4.0.jar.error jars/openjdk-17.0.4/bcel-6.4.1.jar.error jars/openjdk-18.0.2/bcel-6.4.0.jar.error jars/openjdk-19.0.2/bcel-6.4.1.jar.error
jars/openjdk-16.0.1/bcel-6.4.0.jar.error jars/openjdk-17.0.1/bcel-6.4.1.jar.error jars/openjdk-17.0.7/bcel-6.4.0.jar.error jars/openjdk-18.0.2/bcel-6.4.1.jar.error
Over half of the remaining build failures are caused by a ConcurrentModificationException
:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -c ConcurrentModificationException jars/*/*.jar.error|grep -v ':0$'|wc -l
63
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -C 3 ConcurrentModificationException jars/*/*.jar.error|head -20
jars/openjdk-15.0.1/bcel-6.4.0.jar.error-[INFO]
jars/openjdk-15.0.1/bcel-6.4.0.jar.error-[INFO] --- bundle:4.2.1:manifest (bundle-manifest) @ bcel ---
jars/openjdk-15.0.1/bcel-6.4.0.jar.error-[ERROR] An internal error occurred
jars/openjdk-15.0.1/bcel-6.4.0.jar.error:java.util.ConcurrentModificationException
jars/openjdk-15.0.1/bcel-6.4.0.jar.error- at java.util.TreeMap.callMappingFunctionWithCheck (TreeMap.java:742)
jars/openjdk-15.0.1/bcel-6.4.0.jar.error- at java.util.TreeMap.computeIfAbsent (TreeMap.java:558)
jars/openjdk-15.0.1/bcel-6.4.0.jar.error- at aQute.bnd.osgi.Jar.putResource (Jar.java:288)
--
jars/openjdk-15.0.1/bcel-6.4.0.jar.error-[WARNING]
jars/openjdk-15.0.1/bcel-6.4.0.jar.error-[WARNING] For more or less details, use 'maven.plugin.validation' property with one of the values (case insensitive): [BRIEF, DEFAULT, VERBOSE]
jars/openjdk-15.0.1/bcel-6.4.0.jar.error-[WARNING]
jars/openjdk-15.0.1/bcel-6.4.0.jar.error:[ERROR] Failed to execute goal org.apache.felix:maven-bundle-plugin:4.2.1:manifest (bundle-manifest) on project bcel: Internal error in maven-bundle-plugin: ConcurrentModificationException -> [Help 1]
jars/openjdk-15.0.1/bcel-6.4.0.jar.error-[ERROR]
jars/openjdk-15.0.1/bcel-6.4.0.jar.error-[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
jars/openjdk-15.0.1/bcel-6.4.0.jar.error-[ERROR] Re-run Maven using the -X switch to enable full debug logging.
--
jars/openjdk-15.0.1/bcel-6.4.1.jar.error-[INFO]
jars/openjdk-15.0.1/bcel-6.4.1.jar.error-[INFO] --- bundle:4.2.1:manifest (bundle-manifest) @ bcel ---
jars/openjdk-15.0.1/bcel-6.4.1.jar.error-[ERROR] An internal error occurred
jars/openjdk-15.0.1/bcel-6.4.1.jar.error:java.util.ConcurrentModificationException
All of these occur on JDK >= 15.0.1:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -l ConcurrentModificationException jars/*/*.jar.error
jars/openjdk-15.0.1/bcel-6.4.0.jar.error
jars/openjdk-15.0.1/bcel-6.4.1.jar.error
jars/openjdk-15.0.1/commons-configuration2-2.6.jar.error
jars/openjdk-15.0.1/commons-configuration2-2.7.jar.error
jars/openjdk-15.0.1/commons-csv-1.7.jar.error
jars/openjdk-15.0.1/commons-csv-1.8.jar.error
jars/openjdk-15.0.1/commons-io-2.7.jar.error
jars/openjdk-15.0.1/commons-lang3-3.10.jar.error
jars/openjdk-15.0.1/commons-lang3-3.9.jar.error
jars/openjdk-16.0.1/bcel-6.4.0.jar.error
jars/openjdk-16.0.1/bcel-6.4.1.jar.error
jars/openjdk-16.0.1/commons-configuration2-2.6.jar.error
jars/openjdk-16.0.1/commons-configuration2-2.7.jar.error
jars/openjdk-16.0.1/commons-csv-1.7.jar.error
jars/openjdk-16.0.1/commons-csv-1.8.jar.error
jars/openjdk-16.0.1/commons-io-2.7.jar.error
jars/openjdk-16.0.1/commons-lang3-3.10.jar.error
jars/openjdk-16.0.1/commons-lang3-3.9.jar.error
jars/openjdk-17.0.1/bcel-6.4.0.jar.error
jars/openjdk-17.0.1/bcel-6.4.1.jar.error
jars/openjdk-17.0.1/commons-configuration2-2.6.jar.error
jars/openjdk-17.0.1/commons-configuration2-2.7.jar.error
jars/openjdk-17.0.1/commons-csv-1.7.jar.error
jars/openjdk-17.0.1/commons-csv-1.8.jar.error
jars/openjdk-17.0.1/commons-io-2.7.jar.error
jars/openjdk-17.0.1/commons-lang3-3.10.jar.error
jars/openjdk-17.0.1/commons-lang3-3.9.jar.error
jars/openjdk-17.0.4/bcel-6.4.0.jar.error
jars/openjdk-17.0.4/bcel-6.4.1.jar.error
jars/openjdk-17.0.4/commons-configuration2-2.6.jar.error
jars/openjdk-17.0.4/commons-configuration2-2.7.jar.error
jars/openjdk-17.0.4/commons-csv-1.7.jar.error
jars/openjdk-17.0.4/commons-csv-1.8.jar.error
jars/openjdk-17.0.4/commons-io-2.7.jar.error
jars/openjdk-17.0.4/commons-lang3-3.10.jar.error
jars/openjdk-17.0.4/commons-lang3-3.9.jar.error
jars/openjdk-17.0.7/bcel-6.4.0.jar.error
jars/openjdk-17.0.7/bcel-6.4.1.jar.error
jars/openjdk-17.0.7/commons-configuration2-2.6.jar.error
jars/openjdk-17.0.7/commons-configuration2-2.7.jar.error
jars/openjdk-17.0.7/commons-csv-1.7.jar.error
jars/openjdk-17.0.7/commons-csv-1.8.jar.error
jars/openjdk-17.0.7/commons-io-2.7.jar.error
jars/openjdk-17.0.7/commons-lang3-3.10.jar.error
jars/openjdk-17.0.7/commons-lang3-3.9.jar.error
jars/openjdk-18.0.2/bcel-6.4.0.jar.error
jars/openjdk-18.0.2/bcel-6.4.1.jar.error
jars/openjdk-18.0.2/commons-configuration2-2.6.jar.error
jars/openjdk-18.0.2/commons-configuration2-2.7.jar.error
jars/openjdk-18.0.2/commons-csv-1.7.jar.error
jars/openjdk-18.0.2/commons-csv-1.8.jar.error
jars/openjdk-18.0.2/commons-io-2.7.jar.error
jars/openjdk-18.0.2/commons-lang3-3.10.jar.error
jars/openjdk-18.0.2/commons-lang3-3.9.jar.error
jars/openjdk-19.0.2/bcel-6.4.0.jar.error
jars/openjdk-19.0.2/bcel-6.4.1.jar.error
jars/openjdk-19.0.2/commons-configuration2-2.6.jar.error
jars/openjdk-19.0.2/commons-configuration2-2.7.jar.error
jars/openjdk-19.0.2/commons-csv-1.7.jar.error
jars/openjdk-19.0.2/commons-csv-1.8.jar.error
jars/openjdk-19.0.2/commons-io-2.7.jar.error
jars/openjdk-19.0.2/commons-lang3-3.10.jar.error
jars/openjdk-19.0.2/commons-lang3-3.9.jar.error
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -l ConcurrentModificationException jars/*/*.jar.error|cut -d/ -f2|sort|uniq -c
9 openjdk-15.0.1
9 openjdk-16.0.1
9 openjdk-17.0.1
9 openjdk-17.0.4
9 openjdk-17.0.7
9 openjdk-18.0.2
9 openjdk-19.0.2
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -l ConcurrentModificationException jars/*/*.jar.error|cut -d/ -f3|sort|uniq -c
7 bcel-6.4.0.jar.error
7 bcel-6.4.1.jar.error
7 commons-configuration2-2.6.jar.error
7 commons-configuration2-2.7.jar.error
7 commons-csv-1.7.jar.error
7 commons-csv-1.8.jar.error
7 commons-io-2.7.jar.error
7 commons-lang3-3.10.jar.error
7 commons-lang3-3.9.jar.error
This SO answer indicates we need to upgrade maven-bundle-plugin
.
We wind up using version 4.2.1
, but it's not clear where that comes from -- maven-bundle-plugin
is not mentioned explicitly in the pom.xml
:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/worktrees/openjdk-15.0.1_bcel-6.4.0_MANUALLY_BY_TIM$ grep -A 6 maven-bundle-plugin pom.xml
<!-- Configuration properties for the OSGi maven-bundle-plugin -->
<commons.osgi.symbolicName>org.apache.${commons.componentid}</commons.osgi.symbolicName>
<commons.osgi.export>org.apache.bcel.*;version=${project.version};-noimport:=true</commons.osgi.export>
<commons.osgi.import>*</commons.osgi.import>
<commons.osgi.dynamicImport />
<commons.osgi.private />
<commons.jira.id>BCEL</commons.jira.id>
And the parent POM mentions the plugin twice, only giving the version in one place -- but via a property:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/worktrees/openjdk-15.0.1_bcel-6.4.0_MANUALLY_BY_TIM$ grep -C 2 maven-bundle-plugin ~/code/jcompile/.m2/org/apache/commons/commons-parent/49/commons-parent-49.pom
<commons.packageId>${project.artifactId}</commons.packageId>
<!-- Configuration properties for the OSGi maven-bundle-plugin -->
<commons.osgi.symbolicName>org.apache.commons.${commons.packageId}</commons.osgi.symbolicName>
<commons.osgi.export>org.apache.commons.*;version=${project.version};-noimport:=true</commons.osgi.export>
--
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>${commons.felix.version}</version>
<inherited>true</inherited>
--
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<!--
Finally we find where the version 4.2.1
comes from (the bottom line turns out to be for a different profile):
wtwhite@wtwhite-vuw-vm:~/code/jcompile/worktrees/openjdk-15.0.1_bcel-6.4.0_MANUALLY_BY_TIM$ grep -F commons.felix.version !$
grep -F commons.felix.version ~/code/jcompile/.m2/org/apache/commons/commons-parent/49/commons-parent-49.pom
<commons.felix.version>4.2.1</commons.felix.version>
<version>${commons.felix.version}</version>
<commons.felix.version>3.5.1</commons.felix.version>
At rel/commons-bcel-6.4.0
, under JDK17:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/worktrees/openjdk-15.0.1_bcel-6.4.0_MANUALLY_BY_TIM$ java --version
openjdk 17.0.8.1 2023-08-24
OpenJDK Runtime Environment (build 17.0.8.1+1-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 17.0.8.1+1-Ubuntu-0ubuntu122.04, mixed mode, sharing)
wtwhite@wtwhite-vuw-vm:~/code/jcompile/worktrees/openjdk-15.0.1_bcel-6.4.0_MANUALLY_BY_TIM$ git log -1
commit bbaf623d750f030d186ed026dc201995145c63ec (HEAD, tag: rel/commons-bcel-6.4.0, tag: commons-bcel-6.4.0-RC2)
Author: Gary Gregory <gardgregory@gmail.com>
Date: Fri Sep 20 15:08:21 2019 -0400
Update POM version numbers for Apache Commons BCEL release 6.4.0
The default mvn
command line fails:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/worktrees/openjdk-15.0.1_bcel-6.4.0_MANUALLY_BY_TIM$ mvn -Dmaven.repo.local=/home/wtwhite/code/jcompile/.m2 -Drat.skip=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dcyclonedx.skip=true clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------< org.apache.bcel:bcel >------------------------
[INFO] Building Apache Commons BCEL 6.4.0
--snip--
[INFO] --- maven-bundle-plugin:4.2.1:manifest (bundle-manifest) @ bcel ---
[ERROR] An internal error occurred
java.util.ConcurrentModificationException
at java.util.TreeMap.callMappingFunctionWithCheck (TreeMap.java:750)
at java.util.TreeMap.computeIfAbsent (TreeMap.java:558)
at aQute.bnd.osgi.Jar.putResource (Jar.java:288)
at aQute.bnd.osgi.Jar$1.visitFile (Jar.java:202)
at aQute.bnd.osgi.Jar$1.visitFile (Jar.java:177)
at java.nio.file.Files.walkFileTree (Files.java:2811)
at aQute.bnd.osgi.Jar.buildFromDirectory (Jar.java:176)
at aQute.bnd.osgi.Jar.<init> (Jar.java:119)
at aQute.bnd.osgi.Jar.<init> (Jar.java:172)
at org.apache.felix.bundleplugin.BundlePlugin.getOSGiBuilder (BundlePlugin.java:604)
at org.apache.felix.bundleplugin.ManifestPlugin.getAnalyzer (ManifestPlugin.java:285)
at org.apache.felix.bundleplugin.ManifestPlugin.execute (ManifestPlugin.java:111)
at org.apache.felix.bundleplugin.BundlePlugin.execute (BundlePlugin.java:364)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.993 s
[INFO] Finished at: 2023-10-19T17:18:51+13:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.felix:maven-bundle-plugin:4.2.1:manifest (bundle-manifest) on project bcel: Internal error in maven-bundle-plugin: ConcurrentModificationException -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
But overriding the plugin version with a later one via -Dcommons.felix.version=5.1.1
on the mvn
command line causes the build to succeed:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/worktrees/openjdk-15.0.1_bcel-6.4.0_MANUALLY_BY_TIM$ mvn -Dcommons.felix.version=5.1.1 -Dmaven.repo.local=/home/wtwhite/code/jcompile/.m2 -Drat.skip=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dcyclonedx.skip=true clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------< org.apache.bcel:bcel >------------------------
[INFO] Building Apache Commons BCEL 6.4.0
--snip--
[INFO] --- maven-bundle-plugin:5.1.1:manifest (bundle-manifest) @ bcel ---
--snip--
[INFO] --- maven-source-plugin:3.1.0:jar (attach-sources) @ bcel ---
[INFO] Building jar: /home/wtwhite/code/jcompile/worktrees/openjdk-15.0.1_bcel-6.4.0_MANUALLY_BY_TIM/target/bcel-6.4.0-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.371 s
[INFO] Finished at: 2023-10-19T17:54:58+13:00
[INFO] ------------------------------------------------------------------------
wtwhite@wtwhite-vuw-vm:~/code/jcompile/worktrees/openjdk-15.0.1_bcel-6.4.0_MANUALLY_BY_TIM$ ls -ltr target/*.jar
-rw-rw-r-- 1 wtwhite wtwhite 697270 Oct 19 17:54 target/bcel-6.4.0.jar
-rw-rw-r-- 1 wtwhite wtwhite 105090 Oct 19 17:54 target/bcel-6.4.0-test-sources.jar
-rw-rw-r-- 1 wtwhite wtwhite 695181 Oct 19 17:54 target/bcel-6.4.0-sources.jar
Question: Should we force this override some or all of the time?
The remaining 56 build failures again affect the outer product of the same subset of more recent JDK versions with a handful of specific projects:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -c ConcurrentModificationException jars/*/*.jar.error|grep ':0$'|cut -d/ -f2|sort|uniq -c
8 openjdk-15.0.1
8 openjdk-16.0.1
8 openjdk-17.0.1
8 openjdk-17.0.4
8 openjdk-17.0.7
8 openjdk-18.0.2
8 openjdk-19.0.2
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -c ConcurrentModificationException jars/*/*.jar.error|grep ':0$'|cut -d/ -f3|sort|uniq -c
7 commons-codec-1.11.jar.error:0
7 commons-compress-1.16.1.jar.error:0
7 commons-compress-1.16.jar.error:0
7 json-20211205.jar.error:0
7 json-20220320.jar.error:0
7 json-20220924.jar.error:0
7 json-20230227.jar.error:0
7 json-20230618.jar.error:0
Of these 56, 42 are caused by too-old versions being specified for maven.compiler.source
or maven.compiler.target
:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -l 'Source option 6 is no longer supported' `cat remaining_build_failures.txt`|wc -l
42
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -l 'Source option 6 is no longer supported' `cat remaining_build_failures.txt`|cut -d/ -f2|sort|uniq -c
6 openjdk-15.0.1
6 openjdk-16.0.1
6 openjdk-17.0.1
6 openjdk-17.0.4
6 openjdk-17.0.7
6 openjdk-18.0.2
6 openjdk-19.0.2
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -l 'Source option 6 is no longer supported' `cat remaining_build_failures.txt`|cut -d/ -f3|sort|uniq -c
7 commons-codec-1.11.jar.error
7 json-20211205.jar.error
7 json-20220320.jar.error
7 json-20220924.jar.error
7 json-20230227.jar.error
7 json-20230618.jar.error
These could probably be fixed by specifying -Dmaven.compiler.source=7 -Dmaven.compiler.target=7
to mvn
.
That leaves 14 remaining build failures, all involving the 2 oldest versions of commons-compress
with the latest 7 compiler versions:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -L 'Source option 6 is no longer supported' `cat remaining_build_failures.txt`
jars/openjdk-15.0.1/commons-compress-1.16.1.jar.error
jars/openjdk-15.0.1/commons-compress-1.16.jar.error
jars/openjdk-16.0.1/commons-compress-1.16.1.jar.error
jars/openjdk-16.0.1/commons-compress-1.16.jar.error
jars/openjdk-17.0.1/commons-compress-1.16.1.jar.error
jars/openjdk-17.0.1/commons-compress-1.16.jar.error
jars/openjdk-17.0.4/commons-compress-1.16.1.jar.error
jars/openjdk-17.0.4/commons-compress-1.16.jar.error
jars/openjdk-17.0.7/commons-compress-1.16.1.jar.error
jars/openjdk-17.0.7/commons-compress-1.16.jar.error
jars/openjdk-18.0.2/commons-compress-1.16.1.jar.error
jars/openjdk-18.0.2/commons-compress-1.16.jar.error
jars/openjdk-19.0.2/commons-compress-1.16.1.jar.error
jars/openjdk-19.0.2/commons-compress-1.16.jar.error
Example failure:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ cat !$
cat jars/openjdk-15.0.1/commons-compress-1.16.1.jar.error
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< org.apache.commons:commons-compress >-----------------
[INFO] Building Apache Commons Compress 1.16.1
--snip--
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java:[28,21] cannot find symbol
symbol: class Pack200
location: package java.util.jar
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java:[29,21] cannot find symbol
symbol: class Pack200
location: package java.util.jar
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java:[26,21] cannot find symbol
symbol: class Pack200
location: package java.util.jar
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java:[175,26] package Pack200 does not exist
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java:[175,40] cannot find symbol
symbol: variable Pack200
location: class org.apache.commons.compress.compressors.pack200.Pack200CompressorInputStream
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java:[132,26] package Pack200 does not exist
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java:[137,30] package Pack200 does not exist
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java:[137,47] cannot find symbol
symbol: variable Pack200
location: class org.apache.commons.compress.compressors.pack200.Pack200Utils
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java:[141,26] package Pack200 does not exist
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java:[141,47] cannot find symbol
symbol: variable Pack200
location: class org.apache.commons.compress.compressors.pack200.Pack200Utils
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java:[128,26] package Pack200 does not exist
[ERROR] /dataset/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorOutputStream.java:[128,38] cannot find symbol
symbol: variable Pack200
location: class org.apache.commons.compress.compressors.pack200.Pack200CompressorOutputStream
[INFO] 12 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
--snip--
All 14 failures look like this:
wtwhite@wtwhite-vuw-vm:~/code/jcompile$ grep -L 'Pack200.* cannot find symbol' `cat last_build_failures.txt`|wc -l
0
The last 14 errors involving Pack200
are due to it being removed in JDK 14.
There doesn't seem to be an obvious way to get the functionality back, and I don't think it's worth bothering to try.
Coming back to the 42 compilations that fail due to specifying JDK6, just adding -Dmaven.compiler.source=7 -Dmaven.compiler.target=7
fixes the compilation step but they fail later at the animal.sniffer
plugin:
wtwhite@wtwhite-vuw-vm:~/code/jcompile/worktrees/openjdk-17_commons-codec-1.11_MANUALLY_BY_TIM$ mvn -Dmaven.compiler.source=7 -Dmaven.compiler.target=7 -Dmaven.repo.local=/home/wtwhite/code/jcompile/.m2 -Drat.skip=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dcyclonedx.skip=true clean package
[INFO] Scanning for projects...
[WARNING] The project commons-codec:commons-codec:jar:1.11 uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html
[INFO]
[INFO] --------------------< commons-codec:commons-codec >---------------------
[INFO] Building Apache Commons Codec 1.11
--snip--
[INFO] --- maven-compiler-plugin:3.6.0:compile (default-compile) @ commons-codec ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 64 source files to /home/wtwhite/code/jcompile/worktrees/openjdk-17_commons-codec-1.11_MANUALLY_BY_TIM/target/classes
[INFO]
[INFO] --- maven-bundle-plugin:3.0.1:manifest (bundle-manifest) @ commons-codec ---
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.15:check (checkAPIcompatibility) @ commons-codec ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java70:1.0
Downloading from central: https://repo.maven.apache.org/maven2/org/codehaus/mojo/signature/java70/1.0/java70-1.0.signature
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.215 s
[INFO] Finished at: 2023-10-19T19:55:04+13:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:animal-sniffer-maven-plugin:1.15:check (checkAPIcompatibility) on project commons-codec: Failed to obtain signature: org.codehaus.mojo.signature:java70:1.0: Could not find artifact org.codehaus.mojo.signature:java70:signature:1.0 in central (https://repo.maven.apache.org/maven2)
[ERROR]
[ERROR] Try downloading the file manually from the project website.
[ERROR]
[ERROR] Then, install it using the command:
[ERROR] mvn install:install-file -DgroupId=org.codehaus.mojo.signature -DartifactId=java70 -Dversion=1.0 -Dpackaging=signature -Dfile=/path/to/file
[ERROR]
[ERROR] Alternatively, if you host your own repository you can deploy the file there:
[ERROR] mvn deploy:deploy-file -DgroupId=org.codehaus.mojo.signature -DartifactId=java70 -Dversion=1.0 -Dpackaging=signature -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
[ERROR]
[ERROR]
[ERROR] org.codehaus.mojo.signature:java70:signature:1.0
[ERROR]
[ERROR] from the specified remote repositories:
[ERROR] apache.snapshots (https://repository.apache.org/snapshots, releases=false, snapshots=true),
[ERROR] central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false)
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
537 of 795 compilation attempts succeed in about 50 minutes: