X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.jshell%2Fsrc%2Forg%2Fargeo%2Fcms%2Fjshell%2FSocketPipeMirror.java;h=1e6c9deabac78a289b5dc8ec8f57047970609b6c;hb=7a1298bb4b78713553a37fba483373eeaf738069;hp=7a2332bed1a38c6dbb202a349b5888493fe3db59;hpb=9a975983b2f3509a287dfb5751799544ec97ce70;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.jshell/src/org/argeo/cms/jshell/SocketPipeMirror.java b/org.argeo.cms.jshell/src/org/argeo/cms/jshell/SocketPipeMirror.java index 7a2332bed..1e6c9deab 100644 --- a/org.argeo.cms.jshell/src/org/argeo/cms/jshell/SocketPipeMirror.java +++ b/org.argeo.cms.jshell/src/org/argeo/cms/jshell/SocketPipeMirror.java @@ -36,15 +36,16 @@ class SocketPipeMirror implements Closeable { try { ByteBuffer buffer = ByteBuffer.allocate(1024); while (!readInThread.isInterrupted() && channel.isConnected()) { - if (channel.read(buffer) < 0) + if (channel.read(buffer) < 0) { + in.close(); break; + } buffer.flip(); inPipe.sink().write(buffer); buffer.rewind(); } } catch (AsynchronousCloseException e) { // ignore - // TODO make it cleaner } catch (IOException e) { e.printStackTrace(); } @@ -56,8 +57,10 @@ class SocketPipeMirror implements Closeable { try { ByteBuffer buffer = ByteBuffer.allocate(1024); while (!writeOutThread.isInterrupted() && channel.isConnected()) { - if (outPipe.source().read(buffer) < 0) + if (outPipe.source().read(buffer) < 0) { + out.close(); break; + } buffer.flip(); channel.write(buffer); buffer.rewind();