Compiler crash with -parameters - need help to open a bug

Vicente-Arturo Romero-Zaldivar vicente.romero at oracle.com
Tue Mar 25 16:14:58 UTC 2014


Hi Boaz,

If the problem is reproducible with the big project only and you can 
share it, yes I think that you can send it or you can share a repo with 
the code and instructions to reproduce the issue. Once I have all this 
information I will create the bug report.

Thanks for your help,
Vicente

On 25/03/14 16:03, Boaz Nahum wrote:
> Hi.
>
>
> First, with your help, I managed to isolate some piece of code that 
> reproduce similar crash ( By 'isolate' I mean 45 files that I can send 
> you out of 80K).
>
> ('Similar' means 'Information:java: java.lang.ClassCastException: 
> com.sun.tools.javac.jvm.ClassFile$NameAndType cannot be cast to 
> com.sun.tools.javac.util.Name <http://com.sun.tools.javac.util.Name>' )
>
>
> But now the crash only with 1.8.0u20 but not with 
> http://hg.openjdk.java.net/jdk8/tl/
>
> On the other hand, in our huge project it happens also with 
> http://hg.openjdk.java.net/jdk8/tl/
>
> So I guess I didn't isolated it completely.
>
> Second. this crash happens only if 'annotation processor' is involved.
>
> So, I don't know if it worth the effort to send you the files (and 
> short description how to build them) ?
>
> Thanks
> Boaz
>
>
>
> On Mon, Mar 24, 2014 at 9:54 PM, Vicente-Arturo Romero-Zaldivar 
> <vicente.romero at oracle.com <mailto:vicente.romero at oracle.com>> wrote:
>
>     On 24/03/14 19:41, Boaz Nahum wrote:
>>
>>     Of curse you can ( why not mention my name :) ? )
>>
>
>     :) just in case you didn't want but I have no problem with adding
>     your name and / or mail
>
>
>>     Anyway, do you already know what the bug is ? Can you share the
>>     bug ID with me ?
>>
>
>     I haven't created it yet but I will send you the id once I have it.
>
>
>>     I will try to isolate the code and send it to you.
>>
>
>     Thanks,
>     Vicente
>
>
>>     The
>>     Boaz
>>
>>     On Mar 24, 2014 9:34 PM, "Vicente-Arturo Romero-Zaldivar"
>>     <vicente.romero at oracle.com <mailto:vicente.romero at oracle.com>> wrote:
>>
>>         Thanks Boaz,
>>
>>         I will add all this info in a bug report. Can I use this test
>>         case to write a mail, probably a blog in the future, about
>>         obtaining extra information from hard bugs? I won't mention
>>         your name. My idea is to write some info that may help other
>>         users to provide more information associated to a crash or bug.
>>
>>         Thanks,
>>         Vicente
>>
>>         On 24/03/14 17:31, Boaz Nahum wrote:
>>>         Comment out
>>>          //@NotNull
>>>             //public static <T> T createSingleton(final Class<?
>>>         extends DIGlobalCxPDD<Void, T, Void>> dd) {
>>>             //
>>>             //    return Singletons.createNonNull(dd, new
>>>         Factory0Adapter<T>() {
>>>             //        @Override
>>>             //        public T get() {
>>>             //            return createWithContext(dd, null, null);
>>>             //        }
>>>             //    });
>>>             //}
>>>
>>>         ---------------------------------------------------------------------
>>>         Brings a new exception:
>>>
>>>
>>>
>>>         ********************* error in file
>>>         F:\views2\BoazMainWF_JDK8_LANG_ON_p\Qsnap\Qrelease\Jar\Core.jar(wf/core/util/factory/di/glob
>>>         al/DIFW.class)
>>>         ********************* while trying to read constant pool
>>>         entry 72
>>>
>>>            #70 = Utf8               all
>>>            #71 = Utf8
>>>         Ljava/util/List<+Lwf/core/util/factory/Factory<+TT;-TP;>;>;
>>>            #72 = Utf8 Ljava/util/List;
>>>            #73 = Utf8               get0
>>>            #74 = Utf8 (Ljava/lang/Class;)Lwf/core/util/factory/Factory0;
>>>
>>>         Comment out:
>>>
>>>                 //List<? extends Factory<? extends T, ? super P>>
>>>         all = DIFWImp.getAll(dd, context);
>>>
>>>                 //noinspection unchecked
>>>                 return null;//(List<Factory<T, P>>)all;
>>>
>>>         ---------------------------------------------------------------------
>>>
>>>         Brings a new exception:
>>>
>>>         ********************* while trying to read constant pool
>>>         entry 162
>>>
>>>           #161 = Utf8
>>>         Ljava/lang/Class<+Lwf/core/util/factory/di/core/DIAbstractDD<-Ljava/lang/Void;+TT;-TP;>;>;
>>>           #162 = Utf8 wf/core/util/packing/Params2
>>>           #163 = Class #162          // wf/core/util/packing/Params2
>>>           #164 = Utf8
>>>         (Ljava/lang/Object;Ljava/lang/Object;)Lwf/core/util/packing/Params2;
>>>           #165 = NameAndType #34:#164      //
>>>         create:(Ljava/lang/Object;Ljava/lang/Object;)Lwf/core/util/packing/Params2;
>>>           #166 = Methodref #163.#165     //
>>>         wf/core/util/packing/Params2.create:(Ljava/lang/Object;Ljava/lang/Object;)Lwf/core/util/packing/Params2;
>>>           #167 = Utf8
>>>         Ljava/lang/Class<+Lwf/core/util/factory/di/factory/DIGlobalCxPDD<Ljava/lang/Void;TT;Lwf/core/util/packing/Params2<TP1;TP2;>;>;>;
>>>
>>>
>>>
>>>         Thx
>>>         Boaz
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>         On Mon, Mar 24, 2014 at 6:40 PM, Boaz Nahum
>>>         <boaznahum at gmail.com <mailto:boaznahum at gmail.com>> wrote:
>>>
>>>             Thx
>>>
>>>             ********************* error in file
>>>             F:\views2\BoazMainWF_JDK8_LANG_ON_p\Qsnap\Qrelease\Jar\Core.jar(wf/core/util/factory/di/glob
>>>             al/DIFW.class)
>>>               ********************* while trying to read constant
>>>             pool entry 64
>>>
>>>             Attachedfiles DIFW{.java, .class,$*.class}
>>>
>>>
>>>
>>>
>>>
>>>
>>>             On Mon, Mar 24, 2014 at 3:52 PM, Vicente-Arturo
>>>             Romero-Zaldivar <vicente.romero at oracle.com
>>>             <mailto:vicente.romero at oracle.com>> wrote:
>>>
>>>                 On 24/03/14 13:50, Boaz Nahum wrote:
>>>>                 is repo http://hg.openjdk.java.net/jdk8/jdk8 is
>>>>                 good enough, or maybe other
>>>
>>>                 Please use this one:
>>>                 http://hg.openjdk.java.net/jdk8/tl/
>>>
>>>
>>>>
>>>>
>>>>                 On Mon, Mar 24, 2014 at 3:45 PM, Vicente-Arturo
>>>>                 Romero-Zaldivar <vicente.romero at oracle.com
>>>>                 <mailto:vicente.romero at oracle.com>> wrote:
>>>>
>>>>                     I usually do this with Linux, if you have Linux
>>>>                     you can go to your jdk repo, to the langtools
>>>>                     folder and do:
>>>>
>>>>                     patch -p1 < /path/to/mypatch
>>>>
>>>>                     after that you can rebuild again the jdk and
>>>>                     you will have the patched javac.
>>>>
>>>>                     Vicente
>>>>
>>>>
>>>>                     On 24/03/14 13:41, Boaz Nahum wrote:
>>>>>                     Please send my link to instruction how to
>>>>>                     apply pathc (I know how to compile JDK, never
>>>>>                     before applied a patch)
>>>>>
>>>>>
>>>>>                     On Mon, Mar 24, 2014 at 3:34 PM,
>>>>>                     Vicente-Arturo Romero-Zaldivar
>>>>>                     <vicente.romero at oracle.com
>>>>>                     <mailto:vicente.romero at oracle.com>> wrote:
>>>>>
>>>>>                         Hi Boaz,
>>>>>
>>>>>                         Please try the attached patch and send me
>>>>>                         the obtained information along with the
>>>>>                         failing .class file.
>>>>>
>>>>>                         Thanks,
>>>>>                         Vicente
>>>>>
>>>>>
>>>>>                         On 24/03/14 13:07, Boaz Nahum wrote:
>>>>>>                         It happens both with 1.8.0_20-ea and
>>>>>>                         1.8.0-b132
>>>>>>
>>>>>>                         The javac (with -verbose) output
>>>>>>                         https://drive.google.com/file/d/0B4MyZ6FK5jswZVZWV0VMSnE3c0k/edit?usp=sharing
>>>>>>
>>>>>>                         I didn't tired with
>>>>>>                         http://hg.openjdk.java.net/jdk9/dev/langtools/
>>>>>>                         I need to re-setup by jdk build environment
>>>>>>
>>>>>>
>>>>>>                         many thanks
>>>>>>                         Boaz
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>                         On Mon, Mar 24, 2014 at 1:24 PM,
>>>>>>                         Vicente-Arturo Romero-Zaldivar
>>>>>>                         <vicente.romero at oracle.com
>>>>>>                         <mailto:vicente.romero at oracle.com>> wrote:
>>>>>>
>>>>>>                             Hi Boaz,
>>>>>>
>>>>>>                             OK it seems like we both need more
>>>>>>                             information :)
>>>>>>
>>>>>>                             What version of javac is this? Can
>>>>>>                             you get the last javac from
>>>>>>                             http://hg.openjdk.java.net/jdk9/dev/langtools/
>>>>>>                             and try to reproduce the issue? Do
>>>>>>                             you get any meaningful information
>>>>>>                             after executing javac with plain
>>>>>>                             "-verbose" option?
>>>>>>
>>>>>>                             Thanks,
>>>>>>                             Vicente
>>>>>>
>>>>>>
>>>>>>                             On 24/03/14 07:10, Boaz Nahum wrote:
>>>>>>>
>>>>>>>                             That what I'm asking help for - to
>>>>>>>                             isolate  the problematic source.
>>>>>>>                             But from what I learnt - it is
>>>>>>>                             combination of source and
>>>>>>>                             dependencies. The same source
>>>>>>>                             ***passed*** if it is complied with
>>>>>>>                             a dependency that wasn't compile
>>>>>>>                             with "-parameters".
>>>>>>>                             What I need is a flag (or a patch)
>>>>>>>                             that causes the compiler to emit
>>>>>>>                             verbose information
>>>>>>>
>>>>>>>                             Thanks
>>>>>>>                             Boaz
>>>>>>>
>>>>>>>                             On Mar 23, 2014 9:18 PM,
>>>>>>>                             "Vicente-Arturo Romero-Zaldivar"
>>>>>>>                             <vicente.romero at oracle.com
>>>>>>>                             <mailto:vicente.romero at oracle.com>>
>>>>>>>                             wrote:
>>>>>>>
>>>>>>>                                 Hi Boaz,
>>>>>>>
>>>>>>>                                 Do you have an isolated test case?
>>>>>>>
>>>>>>>                                 Thanks,
>>>>>>>                                 Vicente
>>>>>>>
>>>>>>>                                 On 23/03/14 12:40, Boaz Nahum wrote:
>>>>>>>>                                 Actaully
>>>>>>>>                                 '-XDverboseCompilePolicy and
>>>>>>>>                                 -Xdiags:verbose' are not
>>>>>>>>                                 ignored, it is just that the
>>>>>>>>                                 exception occurs too early. If
>>>>>>>>                                 I remove '-parameters' then
>>>>>>>>                                 they do the work ....
>>>>>>>>
>>>>>>>>
>>>>>>>>                                 On Sun, Mar 23, 2014 at 2:29
>>>>>>>>                                 PM, Boaz Nahum
>>>>>>>>                                 <boaznahum at gmail.com
>>>>>>>>                                 <mailto:boaznahum at gmail.com>>
>>>>>>>>                                 wrote:
>>>>>>>>
>>>>>>>>                                     When compiling our code
>>>>>>>>                                     with '-parameters'
>>>>>>>>                                     (1.8.0_20-ea and
>>>>>>>>                                     1.8.0-b132), we got this
>>>>>>>>                                     exception:
>>>>>>>>
>>>>>>>>                                     An exception has occurred
>>>>>>>>                                     in the compiler (1.8.0).
>>>>>>>>                                     Please file a bug at the
>>>>>>>>                                     Java Developer/bugreport)
>>>>>>>>                                     after checking the Bug
>>>>>>>>                                     Parade for duplicates.
>>>>>>>>                                     Include your program and
>>>>>>>>                                     the following diagnostic in
>>>>>>>>                                     your report. Thank you.
>>>>>>>>                                     java.lang.ClassCastException:
>>>>>>>>                                     java.lang.String cannot be
>>>>>>>>                                     cast to
>>>>>>>>                                     com.sun.tools.javac.util.Name
>>>>>>>>                                     <http://com.sun.tools.javac.util.Name>
>>>>>>>>                                            at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader.readName(ClassReader.java:602)
>>>>>>>>                                            at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader.setParameterNames(ClassReader.java:2130)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader.readMethod(ClassReader.java:2031)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:2234)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:2306)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2493)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:2424)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader.access$000(ClassReader.java:76)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader$1.complete(ClassReader.java:244)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.code.Symbol.complete(Symbol.java:560)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1024)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.jvm.ClassReader.loadClass(ClassReader.java:2605)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.Resolve.loadClass(Resolve.java:1868)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.Resolve.findIdentInPackage(Resolve.java:2107)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.Attr.selectSym(Attr.java:3358)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3257)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1891)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.Attr.attribType(Attr.java:658)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.Attr.attribType(Attr.java:651)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.MemberEnter.attribImportType(MemberEnter.java:836)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.MemberEnter.visitImport(MemberEnter.java:556)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.tree.JCTree$JCImport.accept(JCTree.java:571)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:435)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:447)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.MemberEnter.visitTopLevel(MemberEnter.java:526)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:518)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:435)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:1038)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.code.Symbol.complete(Symbol.java:560)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1024)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.Enter.complete(Enter.java:497)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.comp.Enter.main(Enter.java:475)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:985)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.main.Main.compile(Main.java:523)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.main.Main.compile(Main.java:381)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.main.Main.compile(Main.java:370)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.main.Main.compile(Main.java:361)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.Main.compile(Main.java:56)
>>>>>>>>                                             at
>>>>>>>>                                     com.sun.tools.javac.Main.main(Main.java:42)
>>>>>>>>
>>>>>>>>
>>>>>>>>                                     Thanks
>>>>>>>>                                     Boaz
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                                     In order to isolate the
>>>>>>>>                                     problematic code, I add
>>>>>>>>                                     -XDverboseCompilePolicy and
>>>>>>>>                                     -Xdiags:verbose, without luck.
>>>>>>>>                                     Why they are ignored ?
>>>>>>>>
>>>>>>>>                                     Please note that an
>>>>>>>>                                     annotation processor is
>>>>>>>>                                     involved.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20140325/5cacc45c/attachment-0001.html>


More information about the compiler-dev mailing list