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

Compiler directives parser swallows a character after line comments

XMLWordPrintable

    • 9
    • b22
    • generic

      Currently, the following valid compiler directive file:
      ```
      [{
        match: "*::*",
        c2: { Exclude: true } // c1 only for startup
      }]
      ```
      will be rejected by the parser:
      ```
      Syntax error on line 4 byte 2: Expected value separator or object end (one of ',}').
        At ']'.
      }]

      Parsing of compiler directives failed
      ```

      This is because `JSON::skip_line_comment()`, in contradiction to its specification, does **not** "*return the first token after the line comment without consuming it*" but does consumes it.

      The fix is trivial:
      ```
      --- a/src/hotspot/share/utilities/json.cpp
      +++ b/src/hotspot/share/utilities/json.cpp
      @@ -580,7 +580,7 @@ u_char JSON::skip_line_comment() {
           return 0;
         }
         next();
      - return next();
      + return peek();
       }
      ```

            simonis Volker Simonis
            simonis Volker Simonis
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: