diff --git a/jsoncdb/org.eclipse.cdt.jsoncdb.core/plugin.properties b/jsoncdb/org.eclipse.cdt.jsoncdb.core/plugin.properties index f3692d6e606..ec44029a1bf 100644 --- a/jsoncdb/org.eclipse.cdt.jsoncdb.core/plugin.properties +++ b/jsoncdb/org.eclipse.cdt.jsoncdb.core/plugin.properties @@ -11,4 +11,5 @@ which is available at https://www.eclipse.org/legal/epl-2.0/\n\ \n\ SPDX-License-Identifier: EPL-2.0 extension-point.name = Tool Detection Participant -CompileCommandsJsonParserMarker.name = JSON compilation database \ No newline at end of file +CompileCommandsJsonParserMarker.name = JSON compilation database +CompilerBuiltinsDetectorMarker.name=Compiler Builtins Detector Problem diff --git a/jsoncdb/org.eclipse.cdt.jsoncdb.core/plugin.xml b/jsoncdb/org.eclipse.cdt.jsoncdb.core/plugin.xml index aa2999e656f..a2c279069f5 100644 --- a/jsoncdb/org.eclipse.cdt.jsoncdb.core/plugin.xml +++ b/jsoncdb/org.eclipse.cdt.jsoncdb.core/plugin.xml @@ -2,7 +2,6 @@ -"org.eclipse.cdt.jsoncdb.core.internal.ui.CompileCommandsJsonParserOptionPage"> + + + diff --git a/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/CompilerBuiltinsDetector.java b/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/CompilerBuiltinsDetector.java index 971f3371681..db4e691b050 100644 --- a/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/CompilerBuiltinsDetector.java +++ b/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/CompilerBuiltinsDetector.java @@ -132,15 +132,28 @@ public class CompilerBuiltinsDetector { if (state != ICommandLauncher.COMMAND_CANCELED) { try { // check exit status - final int exitValue = proc.waitFor(); + final int exitValue = proc.exitValue(); if (exitValue != 0 && !builtinsDetectionBehavior.suppressErrormessage()) { // compiler had errors... String errMsg = String.format(Messages.CompilerBuiltinsDetector_errmsg_command_failed, command, exitValue); createMarker(errMsg); } - } catch (InterruptedException ex) { - // ignore for now + } catch (IllegalThreadStateException e) { + // Bug 580045 - reused launcher race condition + String warnMsg = String.format(Messages.CompilerBuiltinsDetector_msg_unexpectedly_still_running, + command); + + if (console != null) { + final ConsoleOutputStream cis = console.getInfoStream(); + try { + cis.write(warnMsg.getBytes()); + cis.write("\n".getBytes()); //$NON-NLS-1$ + } catch (IOException ignore) { + } + } + createMarker(warnMsg); + Plugin.getDefault().getLog().log(Status.warning(warnMsg, e)); } } } else { diff --git a/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/Messages.java b/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/Messages.java index 70770488a18..25b703e3ef2 100644 --- a/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/Messages.java +++ b/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/Messages.java @@ -22,6 +22,7 @@ class Messages extends NLS { public static String CompilerBuiltinsDetector_errmsg_command_failed; public static String CompilerBuiltinsDetector_msg_detection_finished; public static String CompilerBuiltinsDetector_msg_detection_start; + public static String CompilerBuiltinsDetector_msg_unexpectedly_still_running; public static String DetectorConsole_title; static { // initialize resource bundle diff --git a/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/messages.properties b/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/messages.properties index 03b19c5f6cf..e6a90923096 100644 --- a/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/messages.properties +++ b/jsoncdb/org.eclipse.cdt.jsoncdb.core/src/org/eclipse/cdt/jsoncdb/core/internal/builtins/messages.properties @@ -14,4 +14,5 @@ CompilerBuiltinsDetector_errmsg_command_failed=%1$s exited with status %2$d. CompilerBuiltinsDetector_msg_detection_finished=Detecting compiler built-ins took %d ms. CompilerBuiltinsDetector_msg_detection_start=%1$s Detecting compiler built-ins for project '%2$s' +CompilerBuiltinsDetector_msg_unexpectedly_still_running=%1$s unexpectedly still running. Detecting compiler built-ins may not have captured all built-ins. DetectorConsole_title=Compiler Built-ins Detection Console