From 94d9b7c99f5cc4903bb6a03b3b437b4efba320ee Mon Sep 17 00:00:00 2001
From: Michael Leuschel <leuschel@cs.uni-duesseldorf.de>
Date: Tue, 26 Nov 2019 14:15:58 +0100
Subject: [PATCH] get java -version info before launching ProB2UI

---
 .../de/prob/ui/eventb/OpenClassicHandler.java | 20 +++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/de.prob.ui/src/de/prob/ui/eventb/OpenClassicHandler.java b/de.prob.ui/src/de/prob/ui/eventb/OpenClassicHandler.java
index 865267e3..c5832a06 100644
--- a/de.prob.ui/src/de/prob/ui/eventb/OpenClassicHandler.java
+++ b/de.prob.ui/src/de/prob/ui/eventb/OpenClassicHandler.java
@@ -112,6 +112,18 @@ public class OpenClassicHandler extends AbstractHandler implements IHandler {
 			// final String command = "java -jar " + probBinary + " --machine-file " + modelFile;
 			//process = Runtime.getRuntime().exec(command);
 			
+            // get some version info first:
+			final String[] vcommand = {"java", "-version"};
+			ProcessBuilder vpb = new ProcessBuilder(vcommand).redirectErrorStream(true);
+			Process vprocess = vpb.start();
+			final BufferedReader voutput = new BufferedReader(
+					new InputStreamReader(vprocess.getInputStream()));
+			new Thread(new ClassicConsole(voutput)).start();
+			vprocess.waitFor(); // this blocks Rodin
+	        if (vprocess.exitValue() != 0) {
+				Logger.notifyUserWithoutBugreport("Failed to start java -version. Exit code: " + vprocess.exitValue());
+	        }
+			
 			final String[] command = {"java", "-jar", probBinary, "--machine-file", modelFile};
 			System.out.println("Launching ProB2UI using: java -jar " + probBinary);
 			LimitedLogger.getLogger().log("Launching ProB2UI using: java -jar " + probBinary + " --machine-file " + modelFile,"ProB2UI",null);
@@ -122,12 +134,8 @@ public class OpenClassicHandler extends AbstractHandler implements IHandler {
 					new InputStreamReader(process.getInputStream()));
 			new Thread(new ClassicConsole(output)).start();
 			
-//			process.waitFor(); // this blocks Rodin
-//	        if (process.exitValue() != 0) {
-//				Logger.notifyUserWithoutBugreport("Failed to launch ProB2UI with java -jar" + probBinary + ". Exit code: " + process.exitValue());
-//	        }
-//		} catch (IOException | InterruptedException e) {
-		} catch (IOException e) {
+		} catch (IOException | InterruptedException e) {
+//		} catch (IOException e) {
 			Logger.notifyUserWithoutBugreport("You need to specify a correct location for "
 			+ PROB2_NAME + ". See Preferences -> ProB Standalone.\n"
 			+ PROB2_NAME + " location: "+ probBinary + 
-- 
GitLab