Please help me focus on compiler crash

Boaz Nahum boaznahum at gmail.com
Thu Feb 14 11:20:44 PST 2013


Thanks - It helps a lot.

I was managed to locate the java file that cause the problem and by
elimination the line.

The exception was caused by missing dependency.

The line is:


PostProcessor.registerRequiredReferences(ResultsSaver.getResultsSaverServiceImpl(),

ScanStatisticsCollectorHelper.getStatisticsCollectorServiceImpl(),

SynchWithScanHelper.getProcessingControlServiceImpl());

The problem:

ScanStatisticsCollectorHelper implements DefectsProcessor

I'm compiling unit (Jar) C.
ScanStatisticsCollectorHelper is compiled in unit B
DefectsProcessor is in unit A.

When compiling C, A is not in classpath. And this what caused the
exception. After adding A compilation succeeded.


Also we have exception from the exact same reason:

    [javac]     at com.sun.tools.javac.code.Types.rank(Types.java:3043)
    [javac]     at com.sun.tools.javac.code.Types.rank(Types.java:3015)
    [javac]     at com.sun.tools.javac.code.Types.rank(Types.java:3019)
    [javac]     at com.sun.tools.javac.code.Types.rank(Types.java:3019)
    [javac]     at
com.sun.tools.javac.code.Symbol$TypeSymbol.precedes(Symbol.java:591)


We have many issues like this in JDK 8. C->B->A. In JDK 7 we just add B to
C classpath and it was compiled successfully. In JDK 8 we have 3 different
results:

1. A message  that A cant be found
2. Exception: at com.sun.tools.javac.code.Types.rank(Types.java:3043)
3. Exception: at
com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitApply(Flow.java:1196)

Thank you for your help.
Boaz





On Thu, Feb 14, 2013 at 7:56 PM, Maurizio Cimadamore <
maurizio.cimadamore at oracle.com> wrote:

> Add
>
> -XDverboseCompilePolicy
>
> That should print detailed info about what the compiler is doing (i.e.
> which file it's compiling before the crash).
>
> Maurizio
>
>
>
>
> On 14/02/13 17:43, Boaz Nahum wrote:
>
>> Hi.
>>
>> I'm building lambda/lambda on daily basis.
>>
>> When compiling I get this compiler error, I'm compiling old stuff with no
>> JDK 8 features:
>>
>>     [javac] [loading ZipFileIndexFileObject[F:\**
>> views2\BoazMainWF_JDK8_p2\**Qsnap\Qrelease\Jar\Core.jar(**
>> wf/core/base/GetterSetter.**class)]]
>>     [javac] An exception has occurred in the compiler (1.8.0-internal).
>> Please file a bug at the Java Developer Connection (http://java.sun.
>> com/webapps/bugreport)  after checking the Bug Parade for duplicates.
>> Include your program and the following diagnostic in your report.  Tha
>> nk you.
>>     [javac] java.lang.NullPointerException
>>     [javac]     at com.sun.tools.javac.comp.Flow$**
>> FlowAnalyzer.visitApply(Flow.**java:1196)
>>     [javac]     at com.sun.tools.javac.tree.**JCTree$JCMethodInvocation.*
>> *accept(JCTree.java:1440)
>>     [javac]     at com.sun.tools.javac.tree.**
>> TreeScanner.scan(TreeScanner.**java:49)
>>     [javac]     at com.sun.tools.javac.tree.**TreeScanner.visitExec(**
>> TreeScanner.java:174)
>>     [javac]     at com.sun.tools.javac.tree.**
>> JCTree$JCExpressionStatement.**accept(JCTree.java:1271)
>>     [javac]     at com.sun.tools.javac.tree.**
>> TreeScanner.scan(TreeScanner.**java:49)
>>     [javac]     at com.sun.tools.javac.tree.**
>> TreeScanner.scan(TreeScanner.**java:57)
>>     [javac]     at com.sun.tools.javac.comp.Flow$**
>> FlowAnalyzer.visitBlock(Flow.**java:959)
>>     [javac]     at com.sun.tools.javac.tree.**
>> JCTree$JCBlock.accept(JCTree.**java:884)
>>     [javac]     at com.sun.tools.javac.tree.**
>> TreeScanner.scan(TreeScanner.**java:49)
>>     [javac]     at com.sun.tools.javac.comp.Flow$**
>> FlowAnalyzer.visitMethodDef(**Flow.java:926)
>>     [javac]     at com.sun.tools.javac.tree.**JCTree$JCMethodDecl.accept(
>> **JCTree.java:771)
>>     [javac]     at com.sun.tools.javac.tree.**
>> TreeScanner.scan(TreeScanner.**java:49)
>>     [javac]     at com.sun.tools.javac.comp.Flow$**
>> FlowAnalyzer.visitClassDef(**Flow.java:889)
>>     [javac]     at com.sun.tools.javac.tree.**JCTree$JCClassDecl.accept(*
>> *JCTree.java:686)
>>     [javac]     at com.sun.tools.javac.tree.**
>> TreeScanner.scan(TreeScanner.**java:49)
>>     [javac]     at com.sun.tools.javac.comp.Flow$**
>> FlowAnalyzer.analyzeTree(Flow.**java:1276)
>>     [javac]     at com.sun.tools.javac.comp.Flow$**
>> FlowAnalyzer.analyzeTree(Flow.**java:1266)
>>     [javac]     at com.sun.tools.javac.comp.Flow.**
>> analyzeTree(Flow.java:212)
>>     [javac]     at com.sun.tools.javac.main.**JavaCompiler.flow(**
>> JavaCompiler.java:1328)
>>     [javac]     at com.sun.tools.javac.main.**JavaCompiler.flow(**
>> JavaCompiler.java:1302)
>>     [javac]     at com.sun.tools.javac.main.**JavaCompiler.compile2(**
>> JavaCompiler.java:907)
>>     [javac]     at com.sun.tools.javac.main.**JavaCompiler.compile(**
>> JavaCompiler.java:866)
>>     [javac]     at com.sun.tools.javac.main.Main.**compile(Main.java:505)
>>     [javac]     at com.sun.tools.javac.main.Main.**compile(Main.java:365)
>>     [javac]     at com.sun.tools.javac.main.Main.**compile(Main.java:354)
>>     [javac]     at com.sun.tools.javac.main.Main.**compile(Main.java:345)
>>     [javac]     at com.sun.tools.javac.Main.**compile(Main.java:76)
>>     [javac]     at com.sun.tools.javac.Main.main(**Main.java:61)
>>
>>
>> Because I'm compiling large number of files, I have no way to know which
>> one causes the problem.
>> I added -verbose But it didn't help match (maybe if I send the output it
>> to you ?)
>> Is there any thing I can do to get more information ?
>>
>> Thanks
>> Boaz
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20130214/8c161389/attachment.html 


More information about the compiler-dev mailing list