From a18a726c8ca7da3b12e1f7701b20981b15f191cd Mon Sep 17 00:00:00 2001 From: Satyen Subramaniam Date: Thu, 24 Apr 2025 21:51:57 +0000 Subject: [PATCH] Backport 141dae8b76d41accfa02a0250a1c24364cbf6f25 --- src/hotspot/share/utilities/json.cpp | 2 +- .../parser/DirectiveParserTest.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/hotspot/share/utilities/json.cpp b/src/hotspot/share/utilities/json.cpp index fc0ac36bbb1..baa15b435db 100644 --- 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(); } /* diff --git a/test/hotspot/jtreg/compiler/compilercontrol/parser/DirectiveParserTest.java b/test/hotspot/jtreg/compiler/compilercontrol/parser/DirectiveParserTest.java index b230b1d72ab..5401714b0f4 100644 --- a/test/hotspot/jtreg/compiler/compilercontrol/parser/DirectiveParserTest.java +++ b/test/hotspot/jtreg/compiler/compilercontrol/parser/DirectiveParserTest.java @@ -33,6 +33,9 @@ package compiler.compilercontrol.parser; +import java.io.FileNotFoundException; +import java.io.PrintStream; + import compiler.compilercontrol.share.JSONFile; import jdk.test.lib.Asserts; import jdk.test.lib.process.OutputAnalyzer; @@ -52,6 +55,7 @@ public static void main(String[] args) { emptyFile(); noFile(); directory(); + lineCommentTest(); } private static void simpleTest() { @@ -145,4 +149,20 @@ private static void directory() { Asserts.assertNE(output.getExitValue(), 0, ERROR_MSG + "directory as " + "a name"); } + + private static void lineCommentTest() { + String fileName = "lineComment.json"; + try { + PrintStream out = new PrintStream(fileName); + out.println("[{"); + out.println(" match: \"*::*\","); + out.println(" c2: { Exclude: true } // c1 only for startup"); + out.println("}]"); + out.close(); + } catch (FileNotFoundException e) { + throw new Error("TESTBUG: can't open/create file " + fileName, e); + } + OutputAnalyzer output = HugeDirectiveUtil.execute(fileName); + output.shouldHaveExitValue(0); + } }