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

switch statement bug

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • None
    • 7
    • tools
    • None

      FULL PRODUCT VERSION :
      Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
      Java HotSpot(TM) 64-Bit Server VM (build 21.1-b02, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows [Version 6.1.7601]

      A DESCRIPTION OF THE PROBLEM :
      when I want to chech string variables in switch statement like that:

       public void doJob( String foo )
       {
            switch (methodName)
            {
          case ( " A " ): // wrong string comparison, decleration error (*)
          {
          doAJob();
          }break;
          case " B " : // string comparison right
                      {
               doBJob();
          } break;
          default :
           System.err.println( " No such param " );
      }
       }

      (*) At line 7: there is a syntax error but javac can't understand it. It says " An exception has occurred in the compiler (1.7.0_01) " . But I tried the code in java version " 1.5.0_05 " . It can see the decleration error.


      REGRESSION. Last worked in version 5.0


      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      java.lang.NullPointerException

          at com.sun.tools.javac.comp.Lower.visitStringSwitch(Lower.java:3456)

          at com.sun.tools.javac.comp.Lower.visitSwitch(Lower.java:3357)

          at com.sun.tools.javac.tree.JCTree$JCSwitch.accept(JCTree.java:959)

          at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)

          at com.sun.tools.javac.comp.Lower.translate(Lower.java:2160)

          at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)

          at com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:160)

          at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3311)

          at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:781)

          at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)

          at com.sun.tools.javac.comp.Lower.translate(Lower.java:2160)

          at com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:144)

          at com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2619)

          at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2538)

          at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:669)

          at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)

          at com.sun.tools.javac.comp.Lower.translate(Lower.java:2160)

          at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2283)

          at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:591)

          at com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)

          at com.sun.tools.javac.comp.Lower.translate(Lower.java:2160)

          at com.sun.tools.javac.comp.Lower.translate(Lower.java:2180)

          at com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3650)

          at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1393)

          at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1271)

          at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:870)

          at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:829)

          at com.sun.tools.javac.main.Main.compile(Main.java:417)

          at com.sun.tools.javac.main.Main.compile(Main.java:331)

          at com.sun.tools.javac.main.Main.compile(Main.java:322)

          at com.sun.tools.javac.Main.compile(Main.java:76)

          at com.sun.tools.javac.Main.main(Main.java:61)


      REPRODUCIBILITY :
      This bug can be reproduced always.

      SUPPORT :
      YES

            darcy Joe Darcy
            webbuggrp Webbug Group
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: