From 9cd68d063313dd2145c68f914dae2fec14890826 Mon Sep 17 00:00:00 2001 From: Jan Lahoda Date: Mon, 19 Oct 2015 12:41:45 +0200 Subject: [PATCH] 8139751: Javac crash with -XDallowStringFolding=false When string folding is disabled, need to keep the original expression. Reviewed-by: mcimadamore --- .../classes/com/sun/tools/javac/parser/JavacParser.java | 2 +- langtools/test/tools/javac/parser/StringFoldingTest.java | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java index 6cc7a671613..9af4c19b7c6 100644 --- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java @@ -973,7 +973,7 @@ public class JavacParser implements Parser { */ protected JCExpression foldStrings(JCExpression tree) { if (!allowStringFolding) - return null; + return tree; ListBuffer opStack = new ListBuffer<>(); ListBuffer litBuf = new ListBuffer<>(); boolean needsFolding = false; diff --git a/langtools/test/tools/javac/parser/StringFoldingTest.java b/langtools/test/tools/javac/parser/StringFoldingTest.java index 67ffff911fe..df0357a343d 100644 --- a/langtools/test/tools/javac/parser/StringFoldingTest.java +++ b/langtools/test/tools/javac/parser/StringFoldingTest.java @@ -23,7 +23,7 @@ /* * @test - * @bug 7068902 + * @bug 7068902 8139751 * @summary verify that string folding can be enabled or disabled * @modules jdk.compiler */ @@ -86,11 +86,14 @@ public class StringFoldingTest { if (disableStringFolding) { if (text.contains("FOLDED")) { - throw new AssertionError("Expected string folding"); + throw new AssertionError("Expected no string folding"); + } + if (!text.contains("\"F\"")) { + throw new AssertionError("Expected content not found"); } } else { if (!text.contains("FOLDED")) { - throw new AssertionError("Expected no string folding"); + throw new AssertionError("Expected string folding"); } } }