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

Single missing switch case error causes multiple error messages

XMLWordPrintable

    • generic
    • generic

      ADDITIONAL SYSTEM INFORMATION :
      Ubuntu 22.04.2 LTS
      openjdk version "20-internal" 2023-03-21
      OpenJDK Runtime Environment (build 20-internal-adhoc.admin1.jdk-jdk-20-34)
      OpenJDK 64-Bit Server VM (build 20-internal-adhoc.admin1.jdk-jdk-20-34, mixed mode)

      A DESCRIPTION OF THE PROBLEM :
      When the case statement was forgotten in a switch, then multiple errors are produced from the compiler. For example, there were 14 error messages for one forgotten case statement as illustrated in the provided source. This behavior can be problematic for automatic error handling or automatic repair approaches. It would be good if the error reporting for missing case statements is stopped, when the first missing one is observed.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Just one error message
      ACTUAL -
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      SwitchTest.java:5: error: case, default, or '}' expected
      Object o1: System.out.println("."); break;
      ^
      14 errors


      ---------- BEGIN SOURCE ----------
      class SwitchTest{
      public static void main(String args[]){
      Object o = null;
      switch (o) {
      Object o1: System.out.println("."); break;
      }
      }
       }
      ---------- END SOURCE ----------

      FREQUENCY : always


            adev Anupam Dev
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: