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

@SuppressWarnings before single variable declaration crashes compiler

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 5.0
    • tools
    • x86
    • linux, windows_xp

      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 :
       2.6.10-1-686-smp #1 SMP Fri Mar 11 01:49:45 EST 2005 i686 GNU/Linux

      A DESCRIPTION OF THE PROBLEM :
      The following method:

          public static int testCompiler() {
              int i = 0;
              for (@SuppressWarnings("unused") String s : new String[] {"A", "B", "C"}) {
                  i++;
              }
              return i;
          }

      will produce:

      Buildfile: build.xml

      init:

      compile:
          [javac] Compiling 2 source files to /home/aploese/workspace/AtledViewer/target/classes
          [javac] An exception has occurred in the compiler (1.5.0_03). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
          [javac] java.lang.AssertionError: {unused}
          [javac] at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.visitArray(TreeMaker.java:634)
          [javac] at com.sun.tools.javac.code.Attribute$Array.accept(Attribute.java:126)
          [javac] at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.translate(TreeMaker.java:637)
          [javac] at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.visitCompoundInternal(TreeMaker.java:628)
          [javac] at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.translate(TreeMaker.java:641)
          [javac] at com.sun.tools.javac.tree.TreeMaker.Annotation(TreeMaker.java:649)
          [javac] at com.sun.tools.javac.tree.TreeMaker.Annotations(TreeMaker.java:570)
          [javac] at com.sun.tools.javac.tree.TreeMaker.VarDef(TreeMaker.java:554)
          [javac] at com.sun.tools.javac.comp.Lower.visitArrayForeachLoop(Lower.java:2824)
          [javac] at com.sun.tools.javac.comp.Lower.visitForeachLoop(Lower.java:2770)
          [javac] at com.sun.tools.javac.tree.Tree$ForeachLoop.accept(Tree.java:602)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
          [javac] at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:54)
          [javac] at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:145)
          [javac] at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:2944)
          [javac] at com.sun.tools.javac.tree.Tree$Block.accept(Tree.java:540)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
          [javac] at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:129)
          [javac] at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2281)
          [javac] at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2200)
          [javac] at com.sun.tools.javac.tree.Tree$MethodDef.accept(Tree.java:482)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
          [javac] at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2003)
          [javac] at com.sun.tools.javac.tree.Tree$ClassDef.accept(Tree.java:438)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1915)
          [javac] at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3081)
          [javac] at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:496)
          [javac] at com.sun.tools.javac.main.Main.compile(Main.java:592)
          [javac] at com.sun.tools.javac.main.Main.compile(Main.java:544)
          [javac] at com.sun.tools.javac.Main.compile(Main.java:67)
          [javac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          [javac] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          [javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          [javac] at java.lang.reflect.Method.invoke(Method.java:585)
          [javac] at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:55)
          [javac] at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:936)
          [javac] at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:758)
          [javac] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
          [javac] at org.apache.tools.ant.Task.perform(Task.java:364)
          [javac] at org.apache.tools.ant.Target.execute(Target.java:341)
          [javac] at org.apache.tools.ant.Target.performTasks(Target.java:369)
          [javac] at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
          [javac] at org.apache.tools.ant.Project.executeTargets(Project.java:1062)
          [javac] at org.apache.tools.ant.Main.runBuild(Main.java:673)
          [javac] at org.apache.tools.ant.Main.startAnt(Main.java:188)
          [javac] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
          [javac] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)

      BUILD FAILED

      The '@SuppressWarnings("unused")' was added by the Eclipse3.1_RC3 QuickFix Tool at this position.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Create a sourcefile with the given method, a ant build-file.
      Run ant ant the given output is shown.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      should compile without error as the eclipse-compiler does.
      ACTUAL -
      Buildfile: build.xml

      init:

      compile:
          [javac] Compiling 2 source files to /home/aploese/workspace/AtledViewer/target/classes
          [javac] An exception has occurred in the compiler (1.5.0_03). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
          [javac] java.lang.AssertionError: {unused}
          [javac] at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.visitArray(TreeMaker.java:634)
          [javac] at com.sun.tools.javac.code.Attribute$Array.accept(Attribute.java:126)
          [javac] at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.translate(TreeMaker.java:637)
          [javac] at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.visitCompoundInternal(TreeMaker.java:628)
          [javac] at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.translate(TreeMaker.java:641)
          [javac] at com.sun.tools.javac.tree.TreeMaker.Annotation(TreeMaker.java:649)
          [javac] at com.sun.tools.javac.tree.TreeMaker.Annotations(TreeMaker.java:570)
          [javac] at com.sun.tools.javac.tree.TreeMaker.VarDef(TreeMaker.java:554)
          [javac] at com.sun.tools.javac.comp.Lower.visitArrayForeachLoop(Lower.java:2824)
          [javac] at com.sun.tools.javac.comp.Lower.visitForeachLoop(Lower.java:2770)
          [javac] at com.sun.tools.javac.tree.Tree$ForeachLoop.accept(Tree.java:602)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
          [javac] at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:54)
          [javac] at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:145)
          [javac] at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:2944)
          [javac] at com.sun.tools.javac.tree.Tree$Block.accept(Tree.java:540)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
          [javac] at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:129)
          [javac] at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2281)
          [javac] at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2200)
          [javac] at com.sun.tools.javac.tree.Tree$MethodDef.accept(Tree.java:482)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
          [javac] at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2003)
          [javac] at com.sun.tools.javac.tree.Tree$ClassDef.accept(Tree.java:438)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1895)
          [javac] at com.sun.tools.javac.comp.Lower.translate(Lower.java:1915)
          [javac] at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3081)
          [javac] at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:496)
          [javac] at com.sun.tools.javac.main.Main.compile(Main.java:592)
          [javac] at com.sun.tools.javac.main.Main.compile(Main.java:544)
          [javac] at com.sun.tools.javac.Main.compile(Main.java:67)
          [javac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          [javac] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          [javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          [javac] at java.lang.reflect.Method.invoke(Method.java:585)
          [javac] at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:55)
          [javac] at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:936)
          [javac] at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:758)
          [javac] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
          [javac] at org.apache.tools.ant.Task.perform(Task.java:364)
          [javac] at org.apache.tools.ant.Target.execute(Target.java:341)
          [javac] at org.apache.tools.ant.Target.performTasks(Target.java:369)
          [javac] at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
          [javac] at org.apache.tools.ant.Project.executeTargets(Project.java:1062)
          [javac] at org.apache.tools.ant.Main.runBuild(Main.java:673)
          [javac] at org.apache.tools.ant.Main.startAnt(Main.java:188)
          [javac] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
          [javac] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)

      BUILD FAILED

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      An exception has occurred in the compiler (1.5.0_04). Please file a bug at the J
      ava Developer Connection (http://java.sun.com/webapps/bugreport) after checking
       the Bug Parade for duplicates. Include your program and the following diagnosti
      c in your report. Thank you.
      java.lang.AssertionError: {unused}
              at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.visitArray(TreeM
      aker.java:634)
              at com.sun.tools.javac.code.Attribute$Array.accept(Attribute.java:124)
              at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.translate(TreeMa
      ker.java:637)
              at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.visitCompoundInt
      ernal(TreeMaker.java:628)
              at com.sun.tools.javac.tree.TreeMaker$AnnotationBuilder.translate(TreeMa
      ker.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.visitArrayForeachLoop(Lower.java:2808)

              at com.sun.tools.javac.comp.Lower.visitForeachLoop(Lower.java:2757)
              at com.sun.tools.javac.tree.Tree$ForeachLoop.accept(Tree.java:597)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
              at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java
      :54)
              at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.jav
      a:145)
              at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:2927)
              at com.sun.tools.javac.tree.Tree$Block.accept(Tree.java:535)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
              at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator
      .java:129)
              at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2267
      )
              at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2186)
              at com.sun.tools.javac.tree.Tree$MethodDef.accept(Tree.java:478)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
              at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:1989)
              at com.sun.tools.javac.tree.Tree$ClassDef.accept(Tree.java:434)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1881)
              at com.sun.tools.javac.comp.Lower.translate(Lower.java:1901)
              at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3064
      )
              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 CompileError {

          public static int testCompiler() {
              int i = 0;
              for (@SuppressWarnings("unused") String s : new String[] {"A", "B", "C"}) {
                  i++;
              }
              return i;
          }

      }

      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      public class CompileError {

          @SuppressWarnings("unused")
          public static int testCompiler() {
              int i = 0;
              for (String s : new String[] {"A", "B", "C"}) {
                  i++;
              }
              return i;
          }

      }
      ###@###.### 2005-07-15 15:25:32 GMT

            Unassigned Unassigned
            gmanwanisunw Girish Manwani (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: