From f6a1589e193beef5181a45e9749aed254427975d Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 25 Oct 2018 16:12:23 +0200 Subject: [PATCH] [java] ignores parasitic messages on parsing "java -version" output (IDEA-199406) --- .../jps/model/java/impl/JdkVersionDetectorImpl.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JdkVersionDetectorImpl.java b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JdkVersionDetectorImpl.java index 0a4a8e278d41..6d7267aa4dcc 100644 --- a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JdkVersionDetectorImpl.java +++ b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JdkVersionDetectorImpl.java @@ -92,11 +92,15 @@ public class JdkVersionDetectorImpl extends JdkVersionDetector { process.destroy(); } - if (!reader.myLines.isEmpty()) { - JavaVersion base = JavaVersion.parse(reader.myLines.get(0)); - JavaVersion rt = JavaVersion.tryParse(reader.myLines.size() > 2 ? reader.myLines.get(1) : null); + List lines = reader.myLines; + while (!lines.isEmpty() && (lines.get(0).startsWith("Picked up _JAVA_OPTIONS:") || lines.get(0).startsWith("Picked up JAVA_TOOL_OPTIONS:"))) { + lines.remove(0); + } + if (!lines.isEmpty()) { + JavaVersion base = JavaVersion.parse(lines.get(0)); + JavaVersion rt = JavaVersion.tryParse(lines.size() > 2 ? lines.get(1) : null); JavaVersion version = rt != null && rt.feature == base.feature && rt.minor == base.minor ? rt : base; - boolean x64 = reader.myLines.stream().anyMatch(s -> s.contains("64-Bit") || s.contains("x86_64") || s.contains("amd64")); + boolean x64 = lines.stream().anyMatch(s -> s.contains("64-Bit") || s.contains("x86_64") || s.contains("amd64")); return new JdkVersionInfo(version, x64 ? Bitness.x64 : Bitness.x32); } }