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

JSR269 : JAVAC throws NullPointerException at ElementFilter.methodsIn()

XMLWordPrintable

      Compiler throws unexpected NPE when the processor is invoked with testclass.java file.

      Steps to reproduce:
      1-> javac -cp /jdk/sol/392/jdk1.6.0/lib/tools.jar:. sampleAP.java
      2-> javac -processor sampleAP -proc:only testclass.java

      bash-2.05$ /jdk/sol/392/jdk1.6.0/bin/javac -J-version
      java version "1.6.0-auto"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-auto-316)
      Java HotSpot(TM) Client VM (build 1.6.0-rc-b60, mixed mode)

      *-*-*-*-*-*-*-
      <Error>
      An annotation processor threw an uncaught exception.
      Consult the following stack trace for details.
      java.lang.NullPointerException
      at sampleAP$testVisitor.visitType(sampleAP.java:32)
      at sampleAP$testVisitor.visitType(sampleAP.java:26)
      at com.sun.tools.javac.code.Symbol$ClassSymbol.accept(Symbol.java:806)
      at sampleAP.process(sampleAP.java:52)
      at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:499)
      at com.sun.tools.javac.processing.JavacProcessingEnvironment.discovery(JavacProcessingEnvironment.java:423)
      at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:572)
      at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:844)
      at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:629)
      at com.sun.tools.javac.main.Main.compile(Main.java:761)
      at com.sun.tools.javac.main.Main.compile(Main.java:686)
      at com.sun.tools.javac.main.Main.compile(Main.java:675)
      at com.sun.tools.javac.Main.compile(Main.java:70)
      at com.sun.tools.javac.Main.main(Main.java:55)

      </Error>
      *-*-*-*-*-*-*-
      <sampleAP.java>
      import javax.annotation.*;
      import javax.annotation.processing.*;
      import javax.lang.model.*;
      import javax.lang.model.element.*;
      import javax.lang.model.type.*;
      import javax.lang.model.util .*;

      import static javax.lang.model.util.ElementFilter.*;

      import java.util.*;
      import java.io.*;

      @SupportedAnnotationTypes({"*"})
      @SupportedOptions({"-verbose"})
      public class sampleAP extends AbstractProcessor {

          private ProcessingEnvironment penv;

          public void init(ProcessingEnvironment env) {

      this.penv = env;
          }

          static class testVisitor extends SimpleElementVisitor6<Boolean,Void> {

      public Boolean visitType(TypeElement exe, Void v) {
      System.out.println(exe.getSimpleName()) ;
      List<? extends ExecutableElement> md = methodsIn(exe.getEnclosedElements());
      for (ExecutableElement d : md) {
      System.out.println( d.getReturnType().toString() + " " +
      d.getSimpleName() + "() = " + d.getDefaultValue().toString() );
      }
      return true;
      }//visitType
          }//testVisitor

      public boolean process(Set<? extends TypeElement> tes, RoundEnvironment renv) {

      testVisitor tav = new testVisitor();
      for (TypeElement typeEle : renv.getSpecifiedTypeElements()) {
         System.out.println("PROCESSING: " + typeEle.getQualifiedName());
                 typeEle.accept(tav, null);
      }
      return true;
          }
      }
      </sampleAP.java>
      *-*-*-*-*-*-*-
      <testclass.java>
      public class testclass {
      String S = null;
      int I = 5;

      public testclass() { S= "";}
      public testclass( String s) { S = new String(s); }

      public void foo() {}
      public String getString() { return S; }
      public int getInt() { return I; }

      void takesparms(String s, int i, testclass tc) {}

      class iClass {
      public iClass(){}
      public void icFoo() {}
      }
      }
      </testclass.java>

      Supplied the testclass.java and sampleAP.java files as attachment.

            Unassigned Unassigned
            bkondepusunw Bala Kondepudi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: