Loading src/com/elphel/vdt/core/launching/LaunchCore.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -240,7 +240,7 @@ public class LaunchCore { logBuildStamp); logBuildStamp); if (VDTLaunchUtil.getRunner().getRunningBuilds().isAlreadyOpen(tool.getName())){ if (VDTLaunchUtil.getRunner().getRunningBuilds().isAlreadyOpen(tool.getName())){ // System.out.println("LaunchCore:launch() tool="+tool.getName()+" was already open! Ignoring... "); // System.out.println("LaunchCore:launch() tool="+tool.getName()+" was already open! Ignoring... "); // return; return; } } // System.out.println("DebugUITools.launch() tool="+tool.getName()+" project="+project.getName()+" resource="+resource.toString()+" logBuildStamp="+logBuildStamp); // System.out.println("DebugUITools.launch() tool="+tool.getName()+" project="+project.getName()+" resource="+resource.toString()+" logBuildStamp="+logBuildStamp); DebugUITools.launch(launchConfig, ILaunchManager.RUN_MODE); DebugUITools.launch(launchConfig, ILaunchManager.RUN_MODE); Loading src/com/elphel/vdt/core/launching/RunningBuilds.java +27 −5 Original line number Original line Diff line number Diff line Loading @@ -99,9 +99,14 @@ public class RunningBuilds { } } public void addMonListener(IConsole parserConsole, IStreamMonitor monitor, IStreamListener listener){ public void addMonListener(IConsole parserConsole, IStreamMonitor monitor, IStreamListener listener){ synchronized (parserListeners){ if (parserListeners==null){ parserListeners.put(parserConsole, new MonListener(monitor, listener)); MessageUI.error("BUG in addMonListener(): parserListeners=null - enable breakpoints"); System.out.println("BUG in addMonListener(): parserListeners=null"); return; } } // synchronized (parserListeners){ parserListeners.put(parserConsole, new MonListener(monitor, listener)); // java.lang.NullPointerException // } } } private void removeMonListener(IConsole parserConsole){ private void removeMonListener(IConsole parserConsole){ MonListener monListener; MonListener monListener; Loading Loading @@ -209,7 +214,7 @@ public class RunningBuilds { while (iter.hasNext()) { while (iter.hasNext()) { String consoleName=iter.next(); String consoleName=iter.next(); if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING)) { if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING)) { System.out.print(i+": "+consoleName); System.out.println((i++)+": "+consoleName); } } } } Loading Loading @@ -295,13 +300,30 @@ public class RunningBuilds { if (toolName.equals(runConfig.getToolName())){ if (toolName.equals(runConfig.getToolName())){ Tool tool=ToolsCore.getTool(runConfig.getToolName()); Tool tool=ToolsCore.getTool(runConfig.getToolName()); // tool.setRunning(false); // tool.setRunning(false); System.out.println("RunningBuilds#isAlreadyOpen("+toolName+"), state="+tool.getState()+" threadID="+Thread.currentThread().getId()); if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING)) { System.out.println("RunningBuilds#isAlreadyOpen("+toolName+"), state="+tool.getState()+" consoleName="+ consoleName+" threadID="+Thread.currentThread().getId()); // Reused old VDTRunner() for (String key:unfinishedBuilds.keySet()){ System.out.println("Unfinished build: "+key); } } tool.setMode(TOOL_MODE.STOP); tool.setMode(TOOL_MODE.STOP); tool.toolFinished(); tool.toolFinished(); if (tool.getState()==TOOL_STATE.KEPT_OPEN) { if (tool.getState()==TOOL_STATE.KEPT_OPEN) { MessageUI.error("Termninal that starts by this tool ("+toolName+") is already open in console \""+consoleName+"\""); MessageUI.error("Termninal that starts by this tool ("+toolName+") is already open in console \""+consoleName+"\". You may close it manually."); tool.toolFinished(); return true; return true; } } MessageUI.error("Something is wrong in RunningBuilds#isAlreadyOpen as the console for the specified tool "+tool.getName()+" is already open"); tool.setState(TOOL_STATE.FAILURE); tool.toolFinished(); return true; } } if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING)) { System.out.println("RunningBuilds#isAlreadyOpen("+toolName+"), no match threadID="+Thread.currentThread().getId()); for (String key:unfinishedBuilds.keySet()){ System.out.println("Unfinished build: "+key+" tool "+unfinishedBuilds.get(key).getToolName()); } } } } return false; return false; Loading src/com/elphel/vdt/core/launching/ToolLogFile.java +3 −2 Original line number Original line Diff line number Diff line Loading @@ -125,6 +125,7 @@ public class ToolLogFile { * @param buildStamp if null - write log mode, "" - read link (latest) file, else - read that build stamp file * @param buildStamp if null - write log mode, "" - read link (latest) file, else - read that build stamp file */ */ public ToolLogFile( public ToolLogFile( boolean writeMode, String logDir, String logDir, String logTool, String logTool, String logName, String logName, Loading @@ -141,7 +142,7 @@ public class ToolLogFile { targetOutIFile=null; targetOutIFile=null; targetErrIFile=null; targetErrIFile=null; debugPrint=VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING); debugPrint=VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING); boolean writeMode=(buildStamp==null); // boolean writeMode=(buildStamp==null); if (!hasOut && !hasErr){ if (!hasOut && !hasErr){ return; // nothing to do return; // nothing to do } } Loading Loading @@ -181,7 +182,7 @@ public class ToolLogFile { targetErrIFile = singleFile? targetOutIFile : iLogFolder.getFile(baseNameErr+buildStampWithSep+ext); targetErrIFile = singleFile? targetOutIFile : iLogFolder.getFile(baseNameErr+buildStampWithSep+ext); if (writeMode) { if (writeMode) { outBytes=0; // jsut for debugging outBytes=0; // just for debugging errBytes=0; errBytes=0; byte [] emptyBA={}; byte [] emptyBA={}; Loading src/com/elphel/vdt/core/launching/VDTConsolePlayback.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -95,6 +95,7 @@ public class VDTConsolePlayback{ // Open logfiles for reading (if available) // Open logfiles for reading (if available) boolean twoFiles=(stdoutParser!=null) && (stderrParser!=null); boolean twoFiles=(stdoutParser!=null) && (stderrParser!=null); ToolLogFile toolLogFile=new ToolLogFile ( ToolLogFile toolLogFile=new ToolLogFile ( false, runConfig.getLogDir(), runConfig.getLogDir(), runConfig.getToolName(), runConfig.getToolName(), buildParamsItem.getLogName(), buildParamsItem.getLogName(), Loading src/com/elphel/vdt/core/launching/VDTConsoleRunner.java +5 −2 Original line number Original line Diff line number Diff line Loading @@ -202,6 +202,7 @@ public class VDTConsoleRunner{ String timeStamp=ToolsCore.getTool(runConfig.getToolName()).getTimeStamp(); String timeStamp=ToolsCore.getTool(runConfig.getToolName()).getTimeStamp(); toolLogFile=(((fSendOutputToStreamProxy!=null) || (fSendErrorsToStreamProxy!=null)))? toolLogFile=(((fSendOutputToStreamProxy!=null) || (fSendErrorsToStreamProxy!=null)))? (new ToolLogFile ( (new ToolLogFile ( true, runConfig.getLogDir(), runConfig.getLogDir(), runConfig.getToolName(), runConfig.getToolName(), buildParamsItem.getLogName(), buildParamsItem.getLogName(), Loading Loading @@ -259,11 +260,12 @@ public class VDTConsoleRunner{ } } } } }; }; if (processOut!=null) VDTLaunchUtil.getRunner().getRunningBuilds().addMonListener( // to remove listener when parser is terminated if (processOut!=null) VDTLaunchUtil.getRunner().getRunningBuilds().addMonListener( // to remove listener when parser is terminated null pointer DebugUITools.getConsole(processOut), //IConsole parserConsole, DebugUITools.getConsole(processOut), //IConsole parserConsole, consoleOutStreamMonitor, consoleOutStreamMonitor, outputListener); outputListener); consoleOutStreamMonitor.addListener(outputListener ); consoleOutStreamMonitor.addListener(outputListener ); // got frozen here // } // } // Problems occurred when invoking code from plug-in: "org.eclipse.ui.console". // Problems occurred when invoking code from plug-in: "org.eclipse.ui.console". // Exception occurred during console property change notification. // Exception occurred during console property change notification. Loading Loading @@ -375,6 +377,7 @@ public class VDTConsoleRunner{ try { try { Thread.sleep(VDTLaunchUtil.CLOSE_INPUT_STREAM_DELAY); Thread.sleep(VDTLaunchUtil.CLOSE_INPUT_STREAM_DELAY); } catch (InterruptedException e) { } catch (InterruptedException e) { System.out.println("Failed Thread.sleep for "+ VDTLaunchUtil.CLOSE_INPUT_STREAM_DELAY); } } stdoutStreamProxy.closeInputStream(); stdoutStreamProxy.closeInputStream(); } catch (IOException e) { } catch (IOException e) { Loading Loading
src/com/elphel/vdt/core/launching/LaunchCore.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -240,7 +240,7 @@ public class LaunchCore { logBuildStamp); logBuildStamp); if (VDTLaunchUtil.getRunner().getRunningBuilds().isAlreadyOpen(tool.getName())){ if (VDTLaunchUtil.getRunner().getRunningBuilds().isAlreadyOpen(tool.getName())){ // System.out.println("LaunchCore:launch() tool="+tool.getName()+" was already open! Ignoring... "); // System.out.println("LaunchCore:launch() tool="+tool.getName()+" was already open! Ignoring... "); // return; return; } } // System.out.println("DebugUITools.launch() tool="+tool.getName()+" project="+project.getName()+" resource="+resource.toString()+" logBuildStamp="+logBuildStamp); // System.out.println("DebugUITools.launch() tool="+tool.getName()+" project="+project.getName()+" resource="+resource.toString()+" logBuildStamp="+logBuildStamp); DebugUITools.launch(launchConfig, ILaunchManager.RUN_MODE); DebugUITools.launch(launchConfig, ILaunchManager.RUN_MODE); Loading
src/com/elphel/vdt/core/launching/RunningBuilds.java +27 −5 Original line number Original line Diff line number Diff line Loading @@ -99,9 +99,14 @@ public class RunningBuilds { } } public void addMonListener(IConsole parserConsole, IStreamMonitor monitor, IStreamListener listener){ public void addMonListener(IConsole parserConsole, IStreamMonitor monitor, IStreamListener listener){ synchronized (parserListeners){ if (parserListeners==null){ parserListeners.put(parserConsole, new MonListener(monitor, listener)); MessageUI.error("BUG in addMonListener(): parserListeners=null - enable breakpoints"); System.out.println("BUG in addMonListener(): parserListeners=null"); return; } } // synchronized (parserListeners){ parserListeners.put(parserConsole, new MonListener(monitor, listener)); // java.lang.NullPointerException // } } } private void removeMonListener(IConsole parserConsole){ private void removeMonListener(IConsole parserConsole){ MonListener monListener; MonListener monListener; Loading Loading @@ -209,7 +214,7 @@ public class RunningBuilds { while (iter.hasNext()) { while (iter.hasNext()) { String consoleName=iter.next(); String consoleName=iter.next(); if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING)) { if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING)) { System.out.print(i+": "+consoleName); System.out.println((i++)+": "+consoleName); } } } } Loading Loading @@ -295,13 +300,30 @@ public class RunningBuilds { if (toolName.equals(runConfig.getToolName())){ if (toolName.equals(runConfig.getToolName())){ Tool tool=ToolsCore.getTool(runConfig.getToolName()); Tool tool=ToolsCore.getTool(runConfig.getToolName()); // tool.setRunning(false); // tool.setRunning(false); System.out.println("RunningBuilds#isAlreadyOpen("+toolName+"), state="+tool.getState()+" threadID="+Thread.currentThread().getId()); if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING)) { System.out.println("RunningBuilds#isAlreadyOpen("+toolName+"), state="+tool.getState()+" consoleName="+ consoleName+" threadID="+Thread.currentThread().getId()); // Reused old VDTRunner() for (String key:unfinishedBuilds.keySet()){ System.out.println("Unfinished build: "+key); } } tool.setMode(TOOL_MODE.STOP); tool.setMode(TOOL_MODE.STOP); tool.toolFinished(); tool.toolFinished(); if (tool.getState()==TOOL_STATE.KEPT_OPEN) { if (tool.getState()==TOOL_STATE.KEPT_OPEN) { MessageUI.error("Termninal that starts by this tool ("+toolName+") is already open in console \""+consoleName+"\""); MessageUI.error("Termninal that starts by this tool ("+toolName+") is already open in console \""+consoleName+"\". You may close it manually."); tool.toolFinished(); return true; return true; } } MessageUI.error("Something is wrong in RunningBuilds#isAlreadyOpen as the console for the specified tool "+tool.getName()+" is already open"); tool.setState(TOOL_STATE.FAILURE); tool.toolFinished(); return true; } } if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING)) { System.out.println("RunningBuilds#isAlreadyOpen("+toolName+"), no match threadID="+Thread.currentThread().getId()); for (String key:unfinishedBuilds.keySet()){ System.out.println("Unfinished build: "+key+" tool "+unfinishedBuilds.get(key).getToolName()); } } } } return false; return false; Loading
src/com/elphel/vdt/core/launching/ToolLogFile.java +3 −2 Original line number Original line Diff line number Diff line Loading @@ -125,6 +125,7 @@ public class ToolLogFile { * @param buildStamp if null - write log mode, "" - read link (latest) file, else - read that build stamp file * @param buildStamp if null - write log mode, "" - read link (latest) file, else - read that build stamp file */ */ public ToolLogFile( public ToolLogFile( boolean writeMode, String logDir, String logDir, String logTool, String logTool, String logName, String logName, Loading @@ -141,7 +142,7 @@ public class ToolLogFile { targetOutIFile=null; targetOutIFile=null; targetErrIFile=null; targetErrIFile=null; debugPrint=VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING); debugPrint=VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_LAUNCHING); boolean writeMode=(buildStamp==null); // boolean writeMode=(buildStamp==null); if (!hasOut && !hasErr){ if (!hasOut && !hasErr){ return; // nothing to do return; // nothing to do } } Loading Loading @@ -181,7 +182,7 @@ public class ToolLogFile { targetErrIFile = singleFile? targetOutIFile : iLogFolder.getFile(baseNameErr+buildStampWithSep+ext); targetErrIFile = singleFile? targetOutIFile : iLogFolder.getFile(baseNameErr+buildStampWithSep+ext); if (writeMode) { if (writeMode) { outBytes=0; // jsut for debugging outBytes=0; // just for debugging errBytes=0; errBytes=0; byte [] emptyBA={}; byte [] emptyBA={}; Loading
src/com/elphel/vdt/core/launching/VDTConsolePlayback.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -95,6 +95,7 @@ public class VDTConsolePlayback{ // Open logfiles for reading (if available) // Open logfiles for reading (if available) boolean twoFiles=(stdoutParser!=null) && (stderrParser!=null); boolean twoFiles=(stdoutParser!=null) && (stderrParser!=null); ToolLogFile toolLogFile=new ToolLogFile ( ToolLogFile toolLogFile=new ToolLogFile ( false, runConfig.getLogDir(), runConfig.getLogDir(), runConfig.getToolName(), runConfig.getToolName(), buildParamsItem.getLogName(), buildParamsItem.getLogName(), Loading
src/com/elphel/vdt/core/launching/VDTConsoleRunner.java +5 −2 Original line number Original line Diff line number Diff line Loading @@ -202,6 +202,7 @@ public class VDTConsoleRunner{ String timeStamp=ToolsCore.getTool(runConfig.getToolName()).getTimeStamp(); String timeStamp=ToolsCore.getTool(runConfig.getToolName()).getTimeStamp(); toolLogFile=(((fSendOutputToStreamProxy!=null) || (fSendErrorsToStreamProxy!=null)))? toolLogFile=(((fSendOutputToStreamProxy!=null) || (fSendErrorsToStreamProxy!=null)))? (new ToolLogFile ( (new ToolLogFile ( true, runConfig.getLogDir(), runConfig.getLogDir(), runConfig.getToolName(), runConfig.getToolName(), buildParamsItem.getLogName(), buildParamsItem.getLogName(), Loading Loading @@ -259,11 +260,12 @@ public class VDTConsoleRunner{ } } } } }; }; if (processOut!=null) VDTLaunchUtil.getRunner().getRunningBuilds().addMonListener( // to remove listener when parser is terminated if (processOut!=null) VDTLaunchUtil.getRunner().getRunningBuilds().addMonListener( // to remove listener when parser is terminated null pointer DebugUITools.getConsole(processOut), //IConsole parserConsole, DebugUITools.getConsole(processOut), //IConsole parserConsole, consoleOutStreamMonitor, consoleOutStreamMonitor, outputListener); outputListener); consoleOutStreamMonitor.addListener(outputListener ); consoleOutStreamMonitor.addListener(outputListener ); // got frozen here // } // } // Problems occurred when invoking code from plug-in: "org.eclipse.ui.console". // Problems occurred when invoking code from plug-in: "org.eclipse.ui.console". // Exception occurred during console property change notification. // Exception occurred during console property change notification. Loading Loading @@ -375,6 +377,7 @@ public class VDTConsoleRunner{ try { try { Thread.sleep(VDTLaunchUtil.CLOSE_INPUT_STREAM_DELAY); Thread.sleep(VDTLaunchUtil.CLOSE_INPUT_STREAM_DELAY); } catch (InterruptedException e) { } catch (InterruptedException e) { System.out.println("Failed Thread.sleep for "+ VDTLaunchUtil.CLOSE_INPUT_STREAM_DELAY); } } stdoutStreamProxy.closeInputStream(); stdoutStreamProxy.closeInputStream(); } catch (IOException e) { } catch (IOException e) { Loading