Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing dependencies when using Ant with Error-prone 2.3.2 #1143

Closed
pstibrany opened this issue Oct 16, 2018 · 2 comments
Closed

Missing dependencies when using Ant with Error-prone 2.3.2 #1143

pstibrany opened this issue Oct 16, 2018 · 2 comments

Comments

@pstibrany
Copy link

pstibrany commented Oct 16, 2018

Please answer these questions before submitting your issue. Thanks!

What version of Error Prone are you using?

2.3.2

Does this issue reproduce with the latest release?

2.3.2 is the last at the moment

What did you do?

I have followed instructions at http://errorprone.info/docs/installation for integrating error-prone to Ant build, using Java 8 compiler. This page mentions three required jar files:

  • error_prone_core-2.3.2-with-dependencies.jar
  • jFormatString-3.0.0.jar
  • javac-9+181-r4173-1.jar

I needed to add following extra dependencies, to make builds work:

  • .m2/repository//org/checkerframework/dataflow/2.5.3/dataflow-2.5.3.jar
  • .m2/repository//org/checkerframework/javacutil/2.5.3/javacutil-2.5.3.jar

What did you expect to see?

Error-prone compiling our source code.

What did you see instead?

Exceptions about missing classes.

Here is one such exception:

    [javac]      Please report this at https://github.com/google/error-prone/issues/new and include the following:
    [javac]   
    [javac]      error-prone version: 2.3.2
    [javac]      BugPattern: ReferenceEquality
    [javac]      Stack Trace:
    [javac]      java.lang.NoClassDefFoundError: org/checkerframework/dataflow/analysis/TransferFunction
    [javac]   	at com.google.errorprone.VisitorState.getNullnessAnalysis(VisitorState.java:144)
    [javac]   	at com.google.errorprone.bugpatterns.AbstractReferenceEquality.getNullness(AbstractReferenceEquality.java:186)
    [javac]   	at com.google.errorprone.bugpatterns.AbstractReferenceEquality.addFixes(AbstractReferenceEquality.java:107)
    [javac]   	at com.google.errorprone.bugpatterns.AbstractReferenceEquality.matchBinary(AbstractReferenceEquality.java:82)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitBinary(ErrorProneScanner.java:507)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitBinary(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [javac]   	at com.sun.source.util.TreeScanner.visitParenthesized(TreeScanner.java:572)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitParenthesized(ErrorProneScanner.java:989)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitParenthesized(ErrorProneScanner.java:146)
    [javac]   	at com.sun.tools.javac.tree.JCTree$JCParens.accept(JCTree.java:1849)
    [javac]   	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [javac]   	at com.sun.source.util.TreeScanner.visitIf(TreeScanner.java:418)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:756)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:146)
    [javac]   	at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1427)
    [javac]   	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:528)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [javac]   	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
    [javac]   	at com.sun.source.util.TreeScanner.visitWhileLoop(TreeScanner.java:275)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitWhileLoop(ErrorProneScanner.java:1169)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitWhileLoop(ErrorProneScanner.java:146)
    [javac]   	at com.sun.tools.javac.tree.JCTree$JCWhileLoop.accept(JCTree.java:1086)
    [javac]   	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:528)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:896)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.scanAndReduce(TreeScanner.java:113)
    [javac]   	at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:187)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:588)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:603)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:146)
    [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:65)
    [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: org.checkerframework.dataflow.analysis.TransferFunction
    [javac]   	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    [javac]   	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    [javac]   	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    [javac]   	... 86 more
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 1 error

Here is another one, after adding dataflow dependency.

    [javac]      Please report this at https://github.com/google/error-prone/issues/new and include the following:
    [javac]   
    [javac]      error-prone version: 2.3.2
    [javac]      BugPattern: ReferenceEquality
    [javac]      Stack Trace:
    [javac]      com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/checkerframework/javacutil/AnnotationProvider
    [javac]   	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2216)
    [javac]   	at com.google.common.cache.LocalCache.get(LocalCache.java:4147)
    [javac]   	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4151)
    [javac]   	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5140)
    [javac]   	at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5146)
    [javac]   	at com.google.errorprone.dataflow.DataFlow.methodDataflow(DataFlow.java:167)
    [javac]   	at com.google.errorprone.dataflow.DataFlow.expressionDataflow(DataFlow.java:226)
    [javac]   	at com.google.errorprone.dataflow.nullnesspropagation.NullnessAnalysis.getNullness(NullnessAnalysis.java:59)
    [javac]   	at com.google.errorprone.bugpatterns.AbstractReferenceEquality.getNullness(AbstractReferenceEquality.java:186)
    [javac]   	at com.google.errorprone.bugpatterns.AbstractReferenceEquality.addFixes(AbstractReferenceEquality.java:107)
    [javac]   	at com.google.errorprone.bugpatterns.AbstractReferenceEquality.matchBinary(AbstractReferenceEquality.java:82)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitBinary(ErrorProneScanner.java:507)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitBinary(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [javac]   	at com.sun.source.util.TreeScanner.visitParenthesized(TreeScanner.java:572)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitParenthesized(ErrorProneScanner.java:989)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitParenthesized(ErrorProneScanner.java:146)
    [javac]   	at com.sun.tools.javac.tree.JCTree$JCParens.accept(JCTree.java:1849)
    [javac]   	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [javac]   	at com.sun.source.util.TreeScanner.visitIf(TreeScanner.java:418)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:756)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:146)
    [javac]   	at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1427)
    [javac]   	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:528)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [javac]   	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
    [javac]   	at com.sun.source.util.TreeScanner.visitWhileLoop(TreeScanner.java:275)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitWhileLoop(ErrorProneScanner.java:1169)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitWhileLoop(ErrorProneScanner.java:146)
    [javac]   	at com.sun.tools.javac.tree.JCTree$JCWhileLoop.accept(JCTree.java:1086)
    [javac]   	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:528)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:896)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.scanAndReduce(TreeScanner.java:113)
    [javac]   	at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:187)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:588)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:146)
    [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.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
    [javac]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    [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.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:603)
    [javac]   	at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:146)
    [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:65)
    [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.NoClassDefFoundError: org/checkerframework/javacutil/AnnotationProvider
    [javac]   	at com.google.errorprone.dataflow.DataFlow$2.load(DataFlow.java:120)
    [javac]   	at com.google.errorprone.dataflow.DataFlow$2.load(DataFlow.java:94)
    [javac]   	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3708)
    [javac]   	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2416)
    [javac]   	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2299)
    [javac]   	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2212)
    [javac]   	... 92 more
    [javac]   Caused by: java.lang.ClassNotFoundException: org.checkerframework.javacutil.AnnotationProvider
    [javac]   	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    [javac]   	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    [javac]   	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    [javac]   	... 98 more
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 1 error
@AlexandreCarlton
Copy link
Contributor

This might be related to the absence of error_prone_ant-2.3.2; it is missing from repo.maven1.org.

@msridhar
Copy link
Contributor

+1 I'm seeing this as well. I think the instructions need to be tweaked to include Checker Dataflow and javacutil.

@cushon cushon closed this as completed in 923b507 Nov 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants