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

javac barfs with a AssertionError when encountering unexpected annotation

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 6
    • 5.0
    • tools
    • b47
    • x86
    • linux, windows_2000, windows_xp
    • Verified

      FULL PRODUCT VERSION :
      java version "1.5.0_03"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07)
      Java HotSpot(TM) Client VM (build 1.5.0_03-b07, mixed mode, sharing)

      ADDITIONAL OS VERSION INFORMATION :
      windows 2000

      A DESCRIPTION OF THE PROBLEM :
      According to http://java.sun.com/j2se/1.5.0/docs/api/java/lang/SuppressWarnings.html
      """Compilers must ignore any warning names they do not recognize."""

      However, javac seems to abort on seeing "unusedLocal"


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      try to compile source code below

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      expecting a nice .class file and a warning :D
      ACTUAL -
      error below

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      java.lang.AssertionError: {unusedLocal}
              at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.visitArray(TreeMaker.java:634)
              at com.sun.tools.javac.code.Attribute$Array.accept(Attribute.java:126)
              at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.translate(TreeMaker.java:637)
              at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.visitCompoundInternal(TreeMaker.java:628)
              at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.translate(TreeMaker.java:641)
              at com.sun.tools.javac.tree.TreeMaker.Annotation(TreeMaker.java:649)
              at com.sun.tools.javac.tree.TreeMaker.Annotations(TreeMaker.java:570)
              at com.sun.tools.javac.tree.TreeMaker.VarDef(TreeMaker.java:554)
              at com.sun.tools.javac.comp.Lower.visitIterableForeachLoop(Lower.java:2908)
              at com.sun.tools.javac.comp.Lower.visitForeachLoop(Lower.java:2768)
              at com.sun.tools.javac.tree.Tree$ForeachLoop.accept(Tree.java:602)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
              at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:54)
              at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:145)
              at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:2944)
              at com.sun.tools.javac.tree.Tree$Block.accept(Tree.java:540)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
              at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:129)
              at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2281)
              at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2200)
              at com.sun.tools.javac.tree.Tree$MethodDef.accept(Tree.java:482)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
              at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2003)
              at com.sun.tools.javac.tree.Tree$ClassDef.accept(Tree.java:438)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1915)
              at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3081)
              at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:496)
              at com.sun.tools.javac.main.Main.compile(Main.java:592)
              at com.sun.tools.javac.main.Main.compile(Main.java:544)
              at com.sun.tools.javac.Main.compile(Main.java:67)
              at com.sun.tools.javac.Main.main(Main.java:52)

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------

      public class Test {
      private void testme( boolean check ) {
      ArrayList<Integer> aList = new ArrayList<Integer>();

      for( @SuppressWarnings("unusedLocal") Integer i : aList ) {
      System.out.println( "checking" );
      }
      }
      }

      ---------- END SOURCE ----------
      ###@###.### 2005-07-07 09:31:10 GMT

            jjg Jonathan Gibbons
            ndcosta Nelson Dcosta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: