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: