java.lang.NoClassDefFoundError: com/google/common/util/concurrent/internal/InternalFutureFailureAccess while using the "with-dependencies.jar"
Run error-prone with the "with-dependencies.jar" (only this is broken)
2.3.3
I could workaround the issue while adding the missing "failureaccess" jar (version 1.0.1) from guava to the path, but this should bundled with the with-dependencies.jar. I guess after splitting guava in one on the latest versions this was not added to the "with-dependencies.jar" packager.
Same error here
[javac] error-prone version: 2.3.3
[javac] BugPattern: ProtoFieldNullComparison
[javac] Stack Trace:
[javac] java.lang.NoClassDefFoundError: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
[javac] at java.lang.ClassLoader.defineClass1(Native Method)
[javac] at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
[javac] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[javac] at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
[javac] at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
[javac] at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
[javac] at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
[javac] at java.security.AccessController.doPrivileged(Native Method)
[javac] at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
[javac] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[javac] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[javac] at java.lang.ClassLoader.defineClass1(Native Method)
[javac] at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
[javac] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[javac] at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
[javac] at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
[javac] at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
[javac] at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
[javac] at java.security.AccessController.doPrivileged(Native Method)
[javac] at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
[javac] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[javac] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[javac] at java.lang.ClassLoader.defineClass1(Native Method)
[javac] at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
[javac] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[javac] at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
[javac] at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
[javac] at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
[javac] at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
[javac] at java.security.AccessController.doPrivileged(Native Method)
[javac] at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
[javac] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[javac] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[javac] at com.google.common.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3471)
[javac] at com.google.common.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3475)
[javac] at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2133)
[javac] at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2044)
[javac] at com.google.common.cache.LocalCache.get(LocalCache.java:3952)
[javac] at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
[javac] at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4958)
[javac] at com.google.errorprone.VisitorState.getTypeFromString(VisitorState.java:335)
[javac] at com.google.errorprone.suppliers.Suppliers$5.get(Suppliers.java:121)
[javac] at com.google.errorprone.suppliers.Suppliers$5.get(Suppliers.java:118)
[javac] at com.google.errorprone.predicates.type.Exact.apply(Exact.java:36)
[javac] at com.google.errorprone.matchers.method.MethodClassMatcherImpl.matchResult(MethodClassMatcherImpl.java:44)
[javac] at com.google.errorprone.matchers.method.MethodClassMatcherImpl.matchResult(MethodClassMatcherImpl.java:31)
[javac] at com.google.errorprone.matchers.method.AbstractChainedMatcher.matchResult(AbstractChainedMatcher.java:39)
[javac] at com.google.errorprone.matchers.method.AbstractChainedMatcher.matchResult(AbstractChainedMatcher.java:37)
[javac] at com.google.errorprone.matchers.method.AbstractSimpleMatcher.matches(AbstractSimpleMatcher.java:30)
[javac] at com.google.errorprone.matchers.method.AbstractSimpleMatcher.matches(AbstractSimpleMatcher.java:25)
[javac] at com.google.errorprone.matchers.Matchers$5.matches(Matchers.java:156)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitMethodInvocation(ProtoFieldNullComparison.java:217)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitMethodInvocation(ProtoFieldNullComparison.java:164)
[javac] at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1644)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.visitMemberSelect(TreeScanner.java:680)
[javac] at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:2112)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[javac] at com.sun.source.util.TreeScanner.visitMethodInvocation(TreeScanner.java:508)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitMethodInvocation(ProtoFieldNullComparison.java:227)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitMethodInvocation(ProtoFieldNullComparison.java:164)
[javac] at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1644)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.visitMemberSelect(TreeScanner.java:680)
[javac] at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:2112)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[javac] at com.sun.source.util.TreeScanner.visitMethodInvocation(TreeScanner.java:508)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitMethodInvocation(ProtoFieldNullComparison.java:227)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitMethodInvocation(ProtoFieldNullComparison.java:164)
[javac] at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1644)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.visitBinary(TreeScanner.java:624)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitBinary(ProtoFieldNullComparison.java:196)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitBinary(ProtoFieldNullComparison.java:164)
[javac] at com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1993)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.visitBinary(TreeScanner.java:624)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitBinary(ProtoFieldNullComparison.java:196)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitBinary(ProtoFieldNullComparison.java:164)
[javac] at com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1993)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[javac] at com.sun.source.util.TreeScanner.visitVariable(TreeScanner.java:223)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitVariable(ProtoFieldNullComparison.java:190)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitVariable(ProtoFieldNullComparison.java:164)
[javac] at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:968)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[javac] at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[javac] at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:248)
[javac] at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1026)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[javac] at com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:206)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitMethod(ProtoFieldNullComparison.java:174)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitMethod(ProtoFieldNullComparison.java:164)
[javac] at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:898)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[javac] at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
[javac] at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:187)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitClass(ProtoFieldNullComparison.java:179)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison$ProtoNullComparisonScanner.visitClass(ProtoFieldNullComparison.java:164)
[javac] at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:808)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[javac] at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[javac] at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
[javac] at com.sun.source.util.TreeScanner.visitCompilationUnit(TreeScanner.java:144)
[javac] at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:591)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:56)
[javac] at com.google.errorprone.bugpatterns.ProtoFieldNullComparison.matchCompilationUnit(ProtoFieldNullComparison.java:160)
[javac] at com.google.errorprone.scanner.ErrorProneScanner.processMatchers(ErrorProneScanner.java:433)
[javac] at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:541)
[javac] at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:150)
[javac] at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:591)
[javac] at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:56)
[javac] at com.google.errorprone.scanner.Scanner.scan(Scanner.java:55)
[javac] at com.google.errorprone.scanner.ErrorProneScannerTransformer.apply(ErrorProneScannerTransformer.java:43)
[javac] at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:151)
[javac] at com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:120)
[javac] at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1404)
[javac] at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1353)
[javac] at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:946)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:302)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:162)
[javac] at com.sun.tools.javac.Main.compile(Main.java:57)
[javac] at com.sun.tools.javac.Main.main(Main.java:43)
[javac] Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.internal.InternalFutureFailureAccess
[javac] at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
[javac] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[javac] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[javac] ... 129 more
[javac] 1 error
Confirmed for me as well. The workaround (adding the missing dependency) works fine, but futureaccess-1.0.1.jar should indeed be part of the with-dependencies.jar already.
Also occurs when running the example from the tutorial: https://errorprone.info/docs/installation
The fix should be a oneliner: #1259
Fwiw:
[INFO] Including com.google.errorprone:error_prone_annotation:jar:2.3.4-SNAPSHOT in the shaded jar.
[INFO] Including com.google.errorprone:error_prone_type_annotations:jar:2.3.4-SNAPSHOT in the shaded jar.
[INFO] Including com.google.errorprone:error_prone_check_api:jar:2.3.4-SNAPSHOT in the shaded jar.
[INFO] Excluding com.googlecode.java-diff-utils:diffutils:jar:1.3.0 from the shaded jar.
[INFO] Including com.github.kevinstern:software-and-algorithms:jar:1.0 in the shaded jar.
[INFO] Including com.github.stephenc.jcip:jcip-annotations:jar:1.0-1 in the shaded jar.
[INFO] Including org.pcollections:pcollections:jar:2.1.2 in the shaded jar.
[INFO] Including com.google.guava:guava:jar:27.0.1-jre in the shaded jar.
[INFO] Including com.google.guava:failureaccess:jar:1.0.1 in the shaded jar.
[INFO] Excluding com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava from the shaded jar.
[INFO] Excluding org.checkerframework:checker-qual:jar:2.5.2 from the shaded jar.
[INFO] Excluding com.google.j2objc:j2objc-annotations:jar:1.1 from the shaded jar.
[INFO] Excluding org.codehaus.mojo:animal-sniffer-annotations:jar:1.17 from the shaded jar.
[INFO] Including com.google.auto:auto-common:jar:0.10 in the shaded jar.
[INFO] Excluding com.google.code.findbugs:jFormatString:jar:3.0.0 from the shaded jar.
[INFO] Including com.google.code.findbugs:jsr305:jar:3.0.0 in the shaded jar.
[INFO] Excluding org.checkerframework:dataflow:jar:2.5.3 from the shaded jar.
[INFO] Excluding org.checkerframework:javacutil:jar:2.5.3 from the shaded jar.
[INFO] Excluding com.google.errorprone:javac:jar:9+181-r4173-1 from the shaded jar.
[INFO] Including com.google.errorprone:error_prone_annotations:jar:2.3.4-SNAPSHOT in the shaded jar.
[INFO] Including com.google.protobuf:protobuf-java:jar:3.4.0 in the shaded jar.
I have no idea if diffutils, dataflow or javacutils would need to be added as well (other excluded dependencies are either willful, or annotations only 鈥損robably only needed at compile-time)
Most helpful comment
Also occurs when running the example from the tutorial: https://errorprone.info/docs/installation