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

Boaz Nahum boaznahum at gmail.com
Tue Mar 25 16:03:08 UTC 2014


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' )


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> 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> 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> 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> 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> 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> 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> 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> 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>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
>>>>>>>>>        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/c6c414d8/attachment-0001.html>


More information about the compiler-dev mailing list