Skip to content

Commit cc48895

Browse files
committed
[GR-44378] Use System.lineSeparator() instead of \n.
PullRequest: graal/19723
2 parents 260da2a + 2eaf519 commit cc48895

File tree

26 files changed

+130
-121
lines changed

26 files changed

+130
-121
lines changed

substratevm/src/com.oracle.graal.pointsto.standalone.test/src/com/oracle/graal/pointsto/standalone/test/PointstoAnalyzerTester.java

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,11 @@
2626

2727
package com.oracle.graal.pointsto.standalone.test;
2828

29-
import com.oracle.graal.pointsto.constraints.UnsupportedFeatureException;
30-
import com.oracle.graal.pointsto.meta.AnalysisElement;
31-
import com.oracle.graal.pointsto.meta.AnalysisType;
32-
import com.oracle.graal.pointsto.meta.AnalysisUniverse;
33-
import com.oracle.graal.pointsto.standalone.PointsToAnalyzer;
34-
import com.oracle.graal.pointsto.util.AnalysisError;
35-
import jdk.vm.ci.meta.MetaAccessProvider;
36-
import jdk.vm.ci.meta.ResolvedJavaField;
37-
import jdk.vm.ci.meta.ResolvedJavaMethod;
38-
import jdk.vm.ci.meta.ResolvedJavaType;
39-
import org.graalvm.nativeimage.hosted.Feature;
29+
import static org.junit.Assert.assertEquals;
30+
import static org.junit.Assert.assertFalse;
31+
import static org.junit.Assert.assertNotEquals;
32+
import static org.junit.Assert.assertNotNull;
33+
import static org.junit.Assert.fail;
4034

4135
import java.io.ByteArrayOutputStream;
4236
import java.io.FileOutputStream;
@@ -54,13 +48,20 @@
5448
import java.util.List;
5549
import java.util.Set;
5650
import java.util.function.Function;
57-
import java.util.stream.Collectors;
5851

59-
import static org.junit.Assert.assertEquals;
60-
import static org.junit.Assert.assertNotEquals;
61-
import static org.junit.Assert.assertFalse;
62-
import static org.junit.Assert.assertNotNull;
63-
import static org.junit.Assert.fail;
52+
import org.graalvm.nativeimage.hosted.Feature;
53+
54+
import com.oracle.graal.pointsto.constraints.UnsupportedFeatureException;
55+
import com.oracle.graal.pointsto.meta.AnalysisElement;
56+
import com.oracle.graal.pointsto.meta.AnalysisType;
57+
import com.oracle.graal.pointsto.meta.AnalysisUniverse;
58+
import com.oracle.graal.pointsto.standalone.PointsToAnalyzer;
59+
import com.oracle.graal.pointsto.util.AnalysisError;
60+
61+
import jdk.vm.ci.meta.MetaAccessProvider;
62+
import jdk.vm.ci.meta.ResolvedJavaField;
63+
import jdk.vm.ci.meta.ResolvedJavaMethod;
64+
import jdk.vm.ci.meta.ResolvedJavaType;
6465

6566
public class PointstoAnalyzerTester {
6667
private Set<Executable> expectedReachableMethods = new HashSet<>();
@@ -307,11 +308,11 @@ private static <T, R extends AnalysisElement> void assertReachable(String elemen
307308
List<T> shouldReachableButNot = expectedReachables.stream().filter(t -> {
308309
R element = getAnalysisElement.apply(t);
309310
return element != null && !element.isReachable();
310-
}).collect(Collectors.toList());
311+
}).toList();
311312

312313
if (!shouldReachableButNot.isEmpty()) {
313314
StringBuilder sb = new StringBuilder(elementType + " should be reached but not:");
314-
shouldReachableButNot.forEach(s -> sb.append(" ").append(getName.apply(s)).append("\n"));
315+
shouldReachableButNot.forEach(s -> sb.append(" ").append(getName.apply(s)).append(System.lineSeparator()));
315316
fail(sb.toString());
316317
}
317318
}

substratevm/src/com.oracle.graal.pointsto.standalone/src/com/oracle/graal/pointsto/standalone/MethodConfigReader.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,6 @@
2626

2727
package com.oracle.graal.pointsto.standalone;
2828

29-
import com.oracle.graal.pointsto.BigBang;
30-
import com.oracle.graal.pointsto.meta.AnalysisMethod;
31-
import com.oracle.graal.pointsto.util.AnalysisError;
32-
import jdk.vm.ci.meta.MetaAccessProvider;
33-
import jdk.vm.ci.meta.ResolvedJavaMethod;
34-
import jdk.vm.ci.meta.ResolvedJavaType;
35-
import jdk.graal.compiler.debug.DebugContext;
36-
import jdk.graal.compiler.debug.DebugOptions;
37-
import jdk.graal.compiler.debug.MethodFilter;
38-
3929
import java.io.BufferedReader;
4030
import java.io.File;
4131
import java.io.FileInputStream;
@@ -50,6 +40,17 @@
5040
import java.util.function.Consumer;
5141
import java.util.stream.Collectors;
5242

43+
import com.oracle.graal.pointsto.BigBang;
44+
import com.oracle.graal.pointsto.meta.AnalysisMethod;
45+
import com.oracle.graal.pointsto.util.AnalysisError;
46+
47+
import jdk.graal.compiler.debug.DebugContext;
48+
import jdk.graal.compiler.debug.DebugOptions;
49+
import jdk.graal.compiler.debug.MethodFilter;
50+
import jdk.vm.ci.meta.MetaAccessProvider;
51+
import jdk.vm.ci.meta.ResolvedJavaMethod;
52+
import jdk.vm.ci.meta.ResolvedJavaType;
53+
5354
/**
5455
* This class reads the configuration file that complies to the following rules:
5556
* <ol>
@@ -86,10 +87,11 @@ public static void readMethodFromFile(String file, BigBang bigbang, ClassLoader
8687
int totalSize = methodNameList.size();
8788
int num = forMethodList(bigbang.getDebug(), methodNameList, bigbang, classLoader, actionForEachMethod);
8889
StringBuilder sb = new StringBuilder();
89-
sb.append("==Reading analysis entry points status==\n");
90-
sb.append(num).append(" out of ").append(totalSize).append(" methods are read from ").append(file).append("\n");
90+
sb.append("==Reading analysis entry points status==").append(System.lineSeparator());
91+
sb.append(num).append(" out of ").append(totalSize).append(" methods are read from ").append(file).append(System.lineSeparator());
9192
if (num < totalSize) {
92-
sb.append("To see the details about the missing methods, please append option -H:").append(DebugOptions.Log.getName()).append("=").append(READ_ENTRY_POINTS).append(":3").append("\n");
93+
sb.append("To see the details about the missing methods, please append option -H:").append(DebugOptions.Log.getName()).append("=").append(READ_ENTRY_POINTS).append(":3")
94+
.append(System.lineSeparator());
9395
}
9496
System.out.println(sb.toString());
9597
}

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/constraints/UnsupportedFeatures.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,11 @@ public void report(BigBang bb) {
122122

123123
String unsupportedFeaturesMessage;
124124
if (singleEntry) {
125-
unsupportedFeaturesMessage = entries.get(0).message + "\nDetailed message:\n" + outputStream.toString();
126-
throw new UnsupportedFeatureException(unsupportedFeaturesMessage, entries.get(0).originalException);
125+
Data entry = entries.getFirst();
126+
unsupportedFeaturesMessage = entry.message + System.lineSeparator() + "Detailed message:" + System.lineSeparator() + outputStream;
127+
throw new UnsupportedFeatureException(unsupportedFeaturesMessage, entry.originalException);
127128
} else {
128-
unsupportedFeaturesMessage = "Unsupported features in " + entries.size() + " methods" + "\nDetailed message:\n" + outputStream.toString();
129+
unsupportedFeaturesMessage = "Unsupported features in " + entries.size() + " methods" + System.lineSeparator() + "Detailed message:" + System.lineSeparator() + outputStream;
129130
throw new UnsupportedFeatureException(unsupportedFeaturesMessage);
130131
}
131132

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/flow/MethodTypeFlow.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,16 @@ public synchronized void setAsStubFlow() {
8787
private void throwSealedError() {
8888
assert sealedFlowsGraph != null;
8989
StringBuilder sb = new StringBuilder();
90-
sb.append("Sealed problem:\n");
91-
if (sealedFlowsGraph instanceof StackTraceElement[]) {
92-
StackTraceElement[] trace = (StackTraceElement[]) sealedFlowsGraph;
90+
sb.append("Sealed problem:").append(System.lineSeparator());
91+
if (sealedFlowsGraph instanceof StackTraceElement[] trace) {
9392
sb = new StringBuilder();
94-
sb.append("stack trace:\n");
93+
sb.append("stack trace:").append(System.lineSeparator());
9594
for (StackTraceElement elem : trace) {
96-
sb.append(elem.toString()).append("\n");
95+
sb.append(elem.toString()).append(System.lineSeparator());
9796
}
98-
sb.append("end trace:\n");
97+
sb.append("end trace:").append(System.lineSeparator());
9998
} else {
100-
sb.append("stack trace is unknown\n");
99+
sb.append("stack trace is unknown").append(System.lineSeparator());
101100
}
102101
throw AnalysisError.shouldNotReachHere(sb.toString());
103102
}

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/util/PointsToOptionParser.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,17 @@
3838
import java.util.function.Predicate;
3939

4040
import org.graalvm.collections.EconomicMap;
41-
import jdk.graal.compiler.options.OptionDescriptor;
42-
import jdk.graal.compiler.options.OptionDescriptors;
43-
import jdk.graal.compiler.options.OptionKey;
44-
import jdk.graal.compiler.options.OptionValues;
4541

4642
import com.oracle.svm.common.option.CommonOptionParser;
4743
import com.oracle.svm.common.option.CommonOptionParser.BooleanOptionFormat;
4844
import com.oracle.svm.common.option.CommonOptionParser.OptionParseResult;
4945
import com.oracle.svm.common.option.UnsupportedOptionClassException;
5046

47+
import jdk.graal.compiler.options.OptionDescriptor;
48+
import jdk.graal.compiler.options.OptionDescriptors;
49+
import jdk.graal.compiler.options.OptionKey;
50+
import jdk.graal.compiler.options.OptionValues;
51+
5152
public final class PointsToOptionParser {
5253

5354
private static PointsToOptionParser instance = new PointsToOptionParser();
@@ -94,9 +95,10 @@ public OptionValues parse(String[] args) {
9495
AnalysisError.interruptAnalysis(String.format("Unknown options: %s", Arrays.toString(remainingArgs.toArray(new String[0]))));
9596
}
9697
if (!errors.isEmpty()) {
97-
StringBuilder errMsg = new StringBuilder("Option format error:\n");
98+
StringBuilder errMsg = new StringBuilder("Option format error:");
99+
errMsg.append(System.lineSeparator());
98100
for (String err : errors) {
99-
errMsg.append(err).append("\n");
101+
errMsg.append(err).append(System.lineSeparator());
100102
}
101103
AnalysisError.interruptAnalysis(errMsg.toString());
102104
}

substratevm/src/com.oracle.svm.core.graal.llvm/src/com/oracle/svm/core/graal/llvm/LLVMToolchainUtils.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@
3232
import java.util.function.Function;
3333
import java.util.function.IntFunction;
3434

35-
import jdk.graal.compiler.debug.DebugContext;
36-
import jdk.graal.compiler.debug.GraalError;
37-
3835
import com.oracle.graal.pointsto.BigBang;
3936
import com.oracle.graal.pointsto.util.CompletionExecutor;
4037
import com.oracle.objectfile.ObjectFile;
@@ -44,6 +41,9 @@
4441
import com.oracle.svm.core.graal.llvm.util.LLVMTargetSpecific;
4542
import com.oracle.svm.hosted.image.LLVMToolchain;
4643

44+
import jdk.graal.compiler.debug.DebugContext;
45+
import jdk.graal.compiler.debug.GraalError;
46+
4747
public class LLVMToolchainUtils {
4848
public static void llvmOptimize(DebugContext debug, String outputPath, String inputPath, Path basePath, Function<String, String> outputPathFormat) {
4949
List<String> args = new ArrayList<>();
@@ -78,7 +78,7 @@ public static void llvmOptimize(DebugContext debug, String outputPath, String in
7878
LLVMToolchain.runLLVMCommand("opt", basePath, args);
7979
} catch (LLVMToolchain.RunFailureException e) {
8080
debug.log("%s", e.getOutput());
81-
throw new GraalError("LLVM optimization failed for " + outputPathFormat.apply(inputPath) + ": " + e.getStatus() + "\nCommand: opt " + String.join(" ", args));
81+
throw new GraalError("LLVM optimization failed for " + outputPathFormat.apply(inputPath) + ": " + e.getStatus() + System.lineSeparator() + "Command: opt " + String.join(" ", args));
8282
}
8383
}
8484

@@ -104,7 +104,7 @@ public static void llvmCompile(DebugContext debug, String outputPath, String inp
104104
LLVMToolchain.runLLVMCommand("llc", basePath, args);
105105
} catch (LLVMToolchain.RunFailureException e) {
106106
debug.log("%s", e.getOutput());
107-
throw new GraalError("LLVM compilation failed for " + outputPathFormat.apply(inputPath) + ": " + e.getStatus() + "\nCommand: llc " + String.join(" ", args));
107+
throw new GraalError("LLVM compilation failed for " + outputPathFormat.apply(inputPath) + ": " + e.getStatus() + System.lineSeparator() + "Command: llc " + String.join(" ", args));
108108
}
109109
}
110110

@@ -162,7 +162,7 @@ public static void llvmCleanupStackMaps(DebugContext debug, String inputPath, Pa
162162
LLVMToolchain.runLLVMCommand("llvm-objcopy", basePath, args);
163163
} catch (LLVMToolchain.RunFailureException e) {
164164
debug.log("%s", e.getOutput());
165-
throw new GraalError("Removing stack maps failed for " + inputPath + ": " + e.getStatus() + "\nCommand: llvm-objcopy " + String.join(" ", args));
165+
throw new GraalError("Removing stack maps failed for " + inputPath + ": " + e.getStatus() + System.lineSeparator() + "Command: llvm-objcopy " + String.join(" ", args));
166166
}
167167
}
168168

substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/thread/PosixVMThreads.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
*/
2525
package com.oracle.svm.core.posix.thread;
2626

27-
import jdk.graal.compiler.word.Word;
2827
import org.graalvm.nativeimage.ImageSingletons;
2928
import org.graalvm.nativeimage.IsolateThread;
3029
import org.graalvm.nativeimage.Platform;
@@ -51,6 +50,8 @@
5150
import com.oracle.svm.core.util.TimeUtils;
5251
import com.oracle.svm.core.util.VMError;
5352

53+
import jdk.graal.compiler.word.Word;
54+
5455
@AutomaticallyRegisteredImageSingleton(VMThreads.class)
5556
public final class PosixVMThreads extends VMThreads {
5657

@@ -118,7 +119,7 @@ interface FILE extends PointerBase {
118119
private static native int fprintfSD(FILE stream, CCharPointer format, CCharPointer arg0, int arg1);
119120

120121
private static final CGlobalData<CCharPointer> FAIL_FATALLY_FDOPEN_MODE = CGlobalDataFactory.createCString("w");
121-
private static final CGlobalData<CCharPointer> FAIL_FATALLY_MESSAGE_FORMAT = CGlobalDataFactory.createCString("Fatal error: %s (code %d)\n");
122+
private static final CGlobalData<CCharPointer> FAIL_FATALLY_MESSAGE_FORMAT = CGlobalDataFactory.createCString("Fatal error: %s (code %d)" + System.lineSeparator());
122123

123124
@Uninterruptible(reason = "Thread state not set up.")
124125
@Override

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/MissingRegistrationUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public static void report(Error exception, StackTraceElement responsibleClass) {
6565
int printed = 0;
6666
StackTraceElement entryPoint = null;
6767
StringBuilder sb = new StringBuilder(exception.toString());
68-
sb.append("\n");
68+
sb.append(System.lineSeparator());
6969
for (StackTraceElement stackTraceElement : stackTrace) {
7070
if (printed == 0) {
7171
String moduleName = stackTraceElement.getModuleName();

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/c/ProjectHeaderFile.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,12 @@ public String resolve(String projectName, String headerFile) {
127127
}
128128

129129
/* If the header was not found at any of the specified locations an error is thrown. */
130-
throw VMError.shouldNotReachHere("Header file " + headerFile +
131-
" not found at main search location(s): \n" + String.join("\n", mainResult.locations) +
132-
(fallbackLocations.size() > 0 ? "\n or any of the fallback locations: \n" + String.join("\n", fallbackLocations) : "") +
133-
"\n Use option -H:CLibraryPath to specify header file search locations.");
130+
throw VMError.shouldNotReachHere("Header file " + headerFile + " not found at main search location(s): " +
131+
System.lineSeparator() + String.join(System.lineSeparator(), mainResult.locations) +
132+
(!fallbackLocations.isEmpty()
133+
? System.lineSeparator() + " or any of the fallback locations: " + System.lineSeparator() + String.join(System.lineSeparator(), fallbackLocations)
134+
: "") +
135+
System.lineSeparator() + " Use option -H:CLibraryPath to specify header file search locations.");
134136
}
135137

136138
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/code/CompilationResultFrameTree.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -735,7 +735,7 @@ public void apply(FrameNode node, Object... args) {
735735
if (node.getStartPos() > node.getEndPos()) {
736736
printer.accept("Error: Node startPos > endPos: ");
737737
printer.accept(node.toString());
738-
printer.accept("\n");
738+
printer.accept(System.lineSeparator());
739739
issues += 1;
740740
}
741741
if (node.nextSibling != null) {
@@ -744,7 +744,7 @@ public void apply(FrameNode node, Object... args) {
744744
printer.accept(node.toString());
745745
printer.accept(" with ");
746746
printer.accept(node.nextSibling.toString());
747-
printer.accept("\n");
747+
printer.accept(System.lineSeparator());
748748
issues += 1;
749749
}
750750
}
@@ -754,9 +754,9 @@ public void apply(FrameNode node, Object... args) {
754754

755755
public static void dump(FrameNode node, Consumer<String> printer, boolean onlyCallTree, boolean showInfopoints, int maxDepth) {
756756
if (node != null) {
757-
printer.accept("\n");
757+
printer.accept(System.lineSeparator());
758758
node.visit(new FrameTreeDumper(printer, onlyCallTree, showInfopoints, maxDepth), 0);
759-
printer.accept("\n");
759+
printer.accept(System.lineSeparator());
760760
}
761761
}
762762

@@ -791,7 +791,7 @@ public void apply(FrameNode node, Object... args) {
791791
indent(level);
792792
printer.accept(node.toString());
793793
if (showSourcePos) {
794-
printer.accept("\n");
794+
printer.accept(System.lineSeparator());
795795
indent(level);
796796
printer.accept(" sourcePos: " + node.sourcePos.toString());
797797
} else {
@@ -802,7 +802,7 @@ public void apply(FrameNode node, Object... args) {
802802
printer.accept(" locals: ");
803803
printer.accept(node.getLocalsStr());
804804
}
805-
printer.accept("\n");
805+
printer.accept(System.lineSeparator());
806806
node.visitChildren(this, level + 1);
807807
}
808808
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/SecuritySubstitutions.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,13 @@ static <T> T executePrivileged(PrivilegedAction<T> action, AccessControlContext
141141
static AccessControlContext checkContext(AccessControlContext context, Class<?> caller) {
142142

143143
if (context != null && context.equals(AccessControllerUtil.DISALLOWED_CONTEXT_MARKER)) {
144-
VMError.shouldNotReachHere("Non-allowed AccessControlContext that was replaced with a blank one at build time was invoked without being reinitialized at run time.\n" +
145-
"This might be an indicator of improper build time initialization, or of a non-compatible JDK version.\n" +
146-
"In order to fix this you can either:\n" +
147-
" * Annotate the offending context's field with @RecomputeFieldValue\n" +
148-
" * Implement a custom runtime accessor and annotate said field with @InjectAccessors\n" +
149-
" * If this context originates from the JDK, and it doesn't leak sensitive info, you can allow it in 'AccessControlContextReplacerFeature.duringSetup'");
144+
VMError.shouldNotReachHere(
145+
"Non-allowed AccessControlContext that was replaced with a blank one at build time was invoked without being reinitialized at run time." + System.lineSeparator() +
146+
"This might be an indicator of improper build time initialization, or of a non-compatible JDK version." + System.lineSeparator() +
147+
"In order to fix this you can either:" + System.lineSeparator() +
148+
" * Annotate the offending context's field with @RecomputeFieldValue" + System.lineSeparator() +
149+
" * Implement a custom runtime accessor and annotate said field with @InjectAccessors" + System.lineSeparator() +
150+
" * If this context originates from the JDK, and it doesn't leak sensitive info, you can allow it in 'AccessControlContextReplacerFeature.duringSetup'");
150151
}
151152

152153
// check if caller is authorized to create context

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/stack/SubstrateStackIntrospection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ public String toString() {
375375
for (int i = 0; i < frameInfo.getNumLocals(); i++) {
376376
JavaConstant con = getLocalConstant(i);
377377
if (con.getJavaKind() != JavaKind.Illegal) {
378-
result.append("\n local ").append(i);
378+
result.append(System.lineSeparator()).append(" local ").append(i);
379379
if (con.getJavaKind() == JavaKind.Object) {
380380
if (isVirtual(i)) {
381381
result.append(" [virtual object]");

0 commit comments

Comments
 (0)