JDK-8215407 : javac should reject class files with bad EnclosingMethod attributes
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 8,11,12
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: x86_64
  • Submitted: 2018-11-29
  • Updated: 2019-04-18
  • Resolved: 2019-04-11
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 13
13 b17Fixed
Related Reports
CSR :  
Sub Tasks
JDK-8222335 :  
Description
A DESCRIPTION OF THE PROBLEM :
> Task :javadoc
javadoc: error - An internal exception has occurred. 
        (java.lang.StringIndexOutOfBoundsException: String index out of range: -2)
Please file a bug against the javadoc tool via the Java bug reporting page
(http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com)
for duplicates. Include error messages and the following diagnostic in your report. Thank you.
java.lang.StringIndexOutOfBoundsException: String index out of range: -2
        at java.base/java.lang.String.substring(String.java:1841)
        at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.simpleBinaryName(ClassReader.java:1510)
        at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readEnclosingMethodAttr(ClassReader.java:1482)
        at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$10.read(ClassReader.java:1206)
        at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readAttrs(ClassReader.java:1586)
        at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassAttrs(ClassReader.java:1600)
        at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:2707)
        at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassBuffer(ClassReader.java:2808)
        at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:2821)
        at jdk.compiler/com.sun.tools.javac.code.ClassFinder.fillIn(ClassFinder.java:359)
        at jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:291)
        at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:642)
        at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1326)
        at jdk.compiler/com.sun.tools.javac.code.Symbol.apiComplete(Symbol.java:648)
        at jdk.compiler/com.sun.tools.javac.code.Symbol$TypeSymbol.getEnclosedElements(Symbol.java:819)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getItems0(Utils.java:2439)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getItems0(Utils.java:2434)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.recursiveGetItems(Utils.java:2422)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils$17.visitPackage(Utils.java:2408)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils$17.visitPackage(Utils.java:2404)
        at jdk.compiler/com.sun.tools.javac.code.Symbol$PackageSymbol.accept(Symbol.java:1177)
        at java.compiler@11.0.1/javax.lang.model.util.AbstractElementVisitor6.visit(AbstractElementVisitor6.java:106)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getItems(Utils.java:2417)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getClasses(Utils.java:2169)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getAllClasses(Utils.java:2330)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ConstantsSummaryBuilder.hasConstantField(ConstantsSummaryBuilder.java:248)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ConstantsSummaryBuilder.buildContents(ConstantsSummaryBuilder.java:160)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ConstantsSummaryBuilder.buildConstantSummary(ConstantsSummaryBuilder.java:144)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ConstantsSummaryBuilder.build(ConstantsSummaryBuilder.java:132)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.generateOtherFiles(AbstractDoclet.java:228)
        at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateOtherFiles(HtmlDoclet.java:115)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:213)
        at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.run(AbstractDoclet.java:114)
        at jdk.javadoc/jdk.javadoc.doclet.StandardDoclet.run(StandardDoclet.java:72)
        at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:582)
        at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:431)
        at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:344)
        at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:63)
        at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:52)



Comments
To reproduce: -download: https://search.maven.org/remotecontent?filepath=net/consensys/cava/cava-merkle-trie/0.5.0/cava-merkle-trie-0.5.0.jar -then use this test: --- /* * @test * @bug 9999999 * @summary XXX * @compile LongerEnclosingClass.java * @compile -processor LongerEnclosingClass -classpath <path-to>/cava-merkle-trie-0.5.0.jar LongerEnclosingClass.java */ import java.util.Set; import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.RoundEnvironment; import javax.annotation.processing.SupportedAnnotationTypes; import javax.lang.model.element.TypeElement; @SupportedAnnotationTypes("*") public class LongerEnclosingClass extends AbstractProcessor { @Override public boolean process(Set<? extends TypeElement> arg0, RoundEnvironment arg1) { System.err.println(processingEnv.getElementUtils().getTypeElement("net.consensys.cava.trie.MerkleTrie.DefaultImpls")); System.err.println(processingEnv.getElementUtils().getTypeElement("net.consensys.cava.trie.MerkleTrie$putAsync$1")); return false; } } --- Should fail with: --- An annotation processor threw an uncaught exception. Consult the following stack trace for details. java.lang.StringIndexOutOfBoundsException: String index out of range: -2 at java.base/java.lang.String.substring(String.java:1850) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.simpleBinaryName(ClassReader.java:1505) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readEnclosingMethodAttr(ClassReader.java:1477) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$10.read(ClassReader.java:1201) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readAttrs(ClassReader.java:1581) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassAttrs(ClassReader.java:1595) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:2703) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassBuffer(ClassReader.java:2804) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:2817) at jdk.compiler/com.sun.tools.javac.code.ClassFinder.fillIn(ClassFinder.java:359) at jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:291) at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:642) at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1326) at jdk.compiler/com.sun.tools.javac.model.JavacElements.nameToSymbol(JavacElements.java:257) at jdk.compiler/com.sun.tools.javac.model.JavacElements.lambda$unboundNameToSymbol$2(JavacElements.java:203) at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1138) at jdk.compiler/com.sun.tools.javac.model.JavacElements.unboundNameToSymbol(JavacElements.java:199) at jdk.compiler/com.sun.tools.javac.model.JavacElements.doGetElement(JavacElements.java:182) at jdk.compiler/com.sun.tools.javac.model.JavacElements.doGetTypeElement(JavacElements.java:172) at jdk.compiler/com.sun.tools.javac.model.JavacElements.getTypeElement(JavacElements.java:160) at jdk.compiler/com.sun.tools.javac.model.JavacElements.getTypeElement(JavacElements.java:87) at LongerEnclosingClass.process(LongerEnclosingClass.java:23) at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:979) at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:895) at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1223) at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1337) at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1262) at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:936) at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:318) at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176) at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:57) at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:43) ---
01-03-2019

It would help to have access to the class file(s) that cause the problem, for a more detailed analysis, such as with javap. The 4th comment, at 2018-12-16 17:52, suggests a workaround, which may help indicate the file that is causing the problem. The workaround is to a Kotlin file (not a Java file), so it may be a problem in the Kotlin compiler that created the class file.
08-01-2019

The alternative (more likely?) explanation is that it is the highlighted line that is incorrect: private Name simpleBinaryName(Name self, Name enclosing) { String simpleBinaryName = self.toString().substring(enclosing.toString().length()); <<<<<<<=========== if (simpleBinaryName.length() < 1 || simpleBinaryName.charAt(0) != '$') throw badClassFile("bad.enclosing.method", self); int index = 1; while (index < simpleBinaryName.length() && isAsciiDigit(simpleBinaryName.charAt(index))) index++; return names.fromString(simpleBinaryName.substring(index)); If `enclosing` is longer than `self`, then we'll get the observed exception.
08-01-2019

Looking at the original stacktrace, the crash is in String.substring, and appears to come from the highlighted line: public String substring(int beginIndex) { if (beginIndex < 0) { throw new StringIndexOutOfBoundsException(beginIndex); } int subLen = length() - beginIndex; if (subLen < 0) { throw new StringIndexOutOfBoundsException(subLen); <<<<<========== } if (beginIndex == 0) { return this; } return isLatin1() ? StringLatin1.newString(value, beginIndex, subLen) : StringUTF16.newString(value, beginIndex, subLen); } (See http://hg.openjdk.java.net/jdk/jdk/file/dfa46cfe5634/src/java.base/share/classes/java/lang/String.java#l1841 ) This would seem to indicate that `beginIndex` is set to `length() + 2`, where `beginIndex` is the parameter that was passed in. The value of the parameter comes from `index` in the following code: private Name simpleBinaryName(Name self, Name enclosing) { String simpleBinaryName = self.toString().substring(enclosing.toString().length()); if (simpleBinaryName.length() < 1 || simpleBinaryName.charAt(0) != '$') throw badClassFile("bad.enclosing.method", self); int index = 1; while (index < simpleBinaryName.length() && isAsciiDigit(simpleBinaryName.charAt(index))) index++; return names.fromString(simpleBinaryName.substring(index)); but, by construction in the while loop, index can be at most `simpleBinaryName.length()` and cannot reasonably be `simpleBinaryName.length() + 2`, which it would need to be to provoke the observed exception. So it would seem that either the VM is faulty, or the String is not immutable, or the String is malformed in some way.
08-01-2019

Response from Submitter: ------------------------------------------------------- "Try this instead: https://github.com/ConsenSys/cava/commit/622909c6eae98e18248fafe6e3c8240db186861a I verified this fails on my MacOS X install: $ java -version java version "11.0.1" 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)" ------------------------------------------------------- Issue is reproducible with JDK 8u181, 11.0.1+13. Steps to reproduce: git clone --recursive https://github.com/ConsenSys/cava cd cava git checkout 622909c6eae98e18248fafe6e3c8240db186861a ./gradlew With JDK 8u181: ============== > Task :javadoc FAILED javadoc: error - String index out of range: -2 1 error FAILURE: Build failed with an exception. With JDK 11.0.1+13: ======================= > Task :javadoc javadoc: error - An internal exception has occurred. (java.lang.StringIndexOutOfBoundsException: String index out of range: -2) Please file a bug against the javadoc tool via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include error messages and the following diagnostic in your report. Thank you. java.lang.StringIndexOutOfBoundsException: String index out of range: -2 at java.base/java.lang.String.substring(String.java:1841) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.simpleBinaryName(ClassReader.java:1510) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readEnclosingMethodAttr(ClassReader.java:1482) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$10.read(ClassReader.java:1206) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readAttrs(ClassReader.java:1586) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassAttrs(ClassReader.java:1600) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:2707) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassBuffer(ClassReader.java:2808) at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:2821) at jdk.compiler/com.sun.tools.javac.code.ClassFinder.fillIn(ClassFinder.java:359) at jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:291) at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:642) at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1326) at jdk.compiler/com.sun.tools.javac.code.Symbol.apiComplete(Symbol.java:648) at jdk.compiler/com.sun.tools.javac.code.Symbol$TypeSymbol.getEnclosedElements(Symbol.java:819) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getItems0(Utils.java:2439) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getItems0(Utils.java:2434) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.recursiveGetItems(Utils.java:2422) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils$17.visitPackage(Utils.java:2408) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils$17.visitPackage(Utils.java:2404) at jdk.compiler/com.sun.tools.javac.code.Symbol$PackageSymbol.accept(Symbol.java:1177) at java.compiler@11.0.1/javax.lang.model.util.AbstractElementVisitor6.visit(AbstractElementVisitor6.java:106) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getItems(Utils.java:2417) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getClasses(Utils.java:2169) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getAllClasses(Utils.java:2330) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ConstantsSummaryBuilder.hasConstantField(ConstantsSummaryBuilder.java:248) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ConstantsSummaryBuilder.buildContents(ConstantsSummaryBuilder.java:160) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ConstantsSummaryBuilder.buildConstantSummary(ConstantsSummaryBuilder.java:144) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ConstantsSummaryBuilder.build(ConstantsSummaryBuilder.java:132) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.generateOtherFiles(AbstractDoclet.java:228) at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateOtherFiles(HtmlDoclet.java:115) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:213) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.run(AbstractDoclet.java:114) at jdk.javadoc/jdk.javadoc.doclet.StandardDoclet.run(StandardDoclet.java:72) at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:582) at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:431) at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:344) at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:63) at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:52) 1 error > Task :javadoc FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':javadoc'. With JDK 12-ea+23, getting below error: ================================= > Task :bytes:compileJava /scratch/priyanka/TestCases/8215407/cava/bytes/src/main/java/net/consensys/cava/bytes/ConcatenatedBytes.java:115: error: An unhandled exception was thrown by the Error Prone static analysis plugin. break; ^ Please report this at https://github.com/google/error-prone/issues/new and include the following: error-prone version: 2.3.2 BugPattern: Finally Stack Trace: java.lang.NoSuchFieldError: label at com.google.errorprone.bugpatterns.Finally$FinallyJumpMatcher.<init>(Finally.java:173) at com.google.errorprone.bugpatterns.Finally.matchBreak(Finally.java:81) at com.google.errorprone.scanner.ErrorProneScanner.visitBreak(ErrorProneScanner.java:537) at com.google.errorprone.scanner.ErrorProneScanner.visitBreak(ErrorProneScanner.java:146) at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBreak.accept(JCTree.java:1577) at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43) at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:106) at jdk.compiler/com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:249) at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:528) at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:146) at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1038) at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43) at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:91) at jdk.compiler/com.sun.source.util.TreeScanner.visitIf(TreeScanner.java:445) at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:756) at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:146) at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1500) at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43) at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:91) at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:106) at jdk.compiler/com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:249) at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:528) at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:146) at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1038) at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43) at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:91) at jdk.compiler/com.sun.source.util.TreeScanner.visitWhileLoop(TreeScanner.java:276) at com.google.errorprone.scanner.ErrorProneScanner.visitWhileLoop(ErrorProneScanner.java:1169) at com.google.errorprone.scanner.ErrorProneScanner.visitWhileLoop(ErrorProneScanner.java:146) at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCWhileLoop.accept(JCTree.java:1098) at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43) at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:91) at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:106) at jdk.compiler/com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:249) at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:528) at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:146) at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1038) at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43) at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:91) at jdk.compiler/com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:207) at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:896) at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:146) at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:904) at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43) at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:91) at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:106) at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:114) at jdk.compiler/com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:188) at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:588) at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:146) at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:814) at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43) at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:106) at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:114) at jdk.compiler/com.sun.source.util.TreeScanner.visitCompilationUnit(TreeScanner.java:145) at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:603) at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:146) at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:597) at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:56) at com.google.errorprone.scanner.Scanner.scan(Scanner.java:65) at com.google.errorprone.scanner.ErrorProneScannerTransformer.apply(ErrorProneScannerTransformer.java:43) at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:151) at jdk.compiler/com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:132) at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1418) at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1365) at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:960) at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104) at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147) at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100) at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94) at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.call(AnnotationProcessingCompileTask.java:89) at org.gradle.api.internal.tasks.compile.ResourceCleaningCompilationTask.call(ResourceCleaningCompilationTask.java:57) at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50) at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:36) at org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerCallable.call(AbstractDaemonCompiler.java:88) at org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerCallable.call(AbstractDaemonCompiler.java:76) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:42) at org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:46) at org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:30) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:101) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:155) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:137) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.base/java.lang.Thread.run(Thread.java:835) 1 error > Task :bytes:compileJava FAILED FAILURE: Build failed with an exception.
21-12-2018

When built cava project using JDK 11 as mentioned by Submitter, getting below build failure: > Task :config:test net.consensys.cava.config.TomlBackedConfigurationTest > writeConfigurationWithDocumentationToToml() FAILED org.opentest4j.AssertionFailedError at TomlBackedConfigurationTest.java:503 net.consensys.cava.config.TomlBackedConfigurationTest > writeConfigurationToToml() FAILED org.opentest4j.AssertionFailedError at TomlBackedConfigurationTest.java:444 33 tests completed, 2 failed > Task :config:test FAILED Requested Submitter for additional information.
18-12-2018

Additional Information from Submitter: The bug can be observed when building this specific version of the cava project: https://github.com/ConsenSys/cava/tree/9d93d34075a813556a24576564d85f201a502afb A workaround for the bug was made here: https://github.com/ConsenSys/cava/commit/f4ef63fb39b6710be2628432b4a2142270d3a913
17-12-2018

No response was received from the submitter. As there is not enough information in this report to make headway it is being closed. If this issue is seen, please open a new report with all necessary information. This report ID can be referenced.
14-12-2018

Requested Submitter to provide reproducible test case and steps to reproduce same. Marking as Incomplete pending for more information.
03-12-2018