Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6341534

PackageElement.getEnclosedElements results in NullPointerException from parse(JavaCompiler.java:429)

XMLWordPrintable

    • b75
    • generic
    • generic
    • Verified

      Failing Tests: apt/Declaration/Package, apt/regression/6341534
      PackageElement.getEnclosedElements() results in NullPointerException from compiler (see output below code). As documented, it should return a List of elements or an empty list.
      Compile and run peAP.java as annotation processor.
      - - - - - peAP.java- - - - - - - - - - - - --
      import javax.annotation.processing.*;
      import javax.lang.model.element.*;
      import javax.lang.model.util.*;
      import static javax.lang.model.util.ElementFilter.*;
      import java.util.*;
      import java.util.Set;

      @SupportedAnnotationTypes({"*"})
      public class peAP extends AbstractProcessor {
      static Elements E = null;
      public void init(ProcessingEnvironment penv) {
      processingEnv = penv;
      E = penv.getElementUtils();
      }
      //Create directory 'dir1' and a test class in dir1
      public boolean process(Set<? extends TypeElement> tes, RoundEnvironment renv) {
      if(renv.errorRaised()) return false;
      processingEnv.getMessager().printNotice( E.getPackageElement("dir1").getQualifiedName().toString() );
      try {List<? extends Element> LEE = E.getPackageElement("dir1").getEnclosedElements();}
      catch(NullPointerException npe)
      {processingEnv.getMessager().printError("Should return possibly empty List."); npe.printStackTrace();return false;}
      return true;
      }
      }
      - - - - - - -- - - -- - -- - -- - - - -
       % javac -proc:only -processor peAP dir1/package-info.java
      Note: dir1
      error: Should return possibly empty List.
      java.lang.NullPointerException
              at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:429)
              at com.sun.tools.javac.main.JavaCompiler.complete(JavaCompiler.java:572)
              at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1534)
              at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1471)
              at com.sun.tools.javac.code.Symbol.complete(Symbol.java:370)
              at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:740)
              at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:672)
              at com.sun.tools.javac.model.FilteredMemberList.unwanted(FilteredMemberList.java:100)
              at com.sun.tools.javac.model.FilteredMemberList.size(FilteredMemberList.java:44)
              at java.util.ArrayList.<init>(ArrayList.java:133)
              at com.sun.tools.javac.code.Symbol$TypeSymbol.getEnclosedElements(Symbol.java:513)
              at peAP.process(peAP.java:19)
              at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:497)
              at com.sun.tools.javac.processing.JavacProcessingEnvironment.discovery(JavacProcessingEnvironment.java:421)
              at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:569)
              at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:843)
              at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:629)
              at com.sun.tools.javac.main.Main.compile(Main.java:756)
              at com.sun.tools.javac.main.Main.compile(Main.java:681)
              at com.sun.tools.javac.main.Main.compile(Main.java:670)
              at com.sun.tools.javac.Main.compile(Main.java:70)
              at com.sun.tools.javac.Main.main(Main.java:55)

            ahe Peter Ahe
            ssides Steve Sides
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: