diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shell/DStoreShellOutputReader.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shell/DStoreShellOutputReader.java index d0d89450bbd..a4e81481272 100644 --- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shell/DStoreShellOutputReader.java +++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shell/DStoreShellOutputReader.java @@ -31,6 +31,7 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple public DStoreShellOutputReader(IHostShell hostShell, DataElement status, boolean isErrorReader) { super(hostShell, isErrorReader); + setName("DStoreShellOutputReader"+getName()); _status = status; if (status != null) { @@ -46,7 +47,7 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple protected Object internalReadLine() { - if (_status != null) + if (_status != null && _keepRunning) { int newSize = _status.getNestedSize(); while (newSize > _statusOffset) @@ -136,6 +137,12 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple } } + public void finish() + { + super.finish(); + notifyResponse(); + } + /* private void handleInput() { diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/shells/DStoreHostShell.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/shells/DStoreHostShell.java index 78c68431f58..fd2b5e8397d 100644 --- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/shells/DStoreHostShell.java +++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/shells/DStoreHostShell.java @@ -66,6 +66,8 @@ public class DStoreHostShell extends AbstractHostShell implements IHostShell public void exit() { writeToShell("exit"); + _stdoutHandler.finish(); + _stderrHandler.finish(); } diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/AbstractHostShellOutputReader.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/AbstractHostShellOutputReader.java index b00aba64db9..7f6dd06be11 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/AbstractHostShellOutputReader.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/AbstractHostShellOutputReader.java @@ -168,7 +168,7 @@ public abstract class AbstractHostShellOutputReader extends Thread implements I dispose(); } } - + public void run() { while (_keepRunning) diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/IHostShellOutputReader.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/IHostShellOutputReader.java index 29cd9ddb0bf..0779add9a43 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/IHostShellOutputReader.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/IHostShellOutputReader.java @@ -22,4 +22,5 @@ public interface IHostShellOutputReader extends IHostShellOutputNotifier public Object readLine(int index); public void addOutputListener(IHostShellOutputListener listener); public boolean isErrorReader(); + public void finish(); } \ No newline at end of file