From 1f05ae86e8fcf50fa1eea29408ad5f772438d6ab Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Fri, 11 May 2012 12:52:39 +0400 Subject: [PATCH] [hg] EA-28334 Fix EOFE: read only as much bytes as available. --- .../src/org/zmlx/hg4idea/execution/SocketServer.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/execution/SocketServer.java b/plugins/hg4idea/src/org/zmlx/hg4idea/execution/SocketServer.java index 03705bcf01b3..91ff04db6557 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/execution/SocketServer.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/execution/SocketServer.java @@ -106,7 +106,14 @@ public class SocketServer { length = origLength; } byte[] data = new byte[length]; - inputStream.readFully(data); + + int offset = 0; + int available; + while ((available = inputStream.available()) > 0) { + inputStream.readFully(data, offset, available); + offset += available; + } + int skipped = inputStream.skipBytes(origLength - length); if (skipped > 0) { LOG.info(String.format("Skipped %s bytes", skipped));