Index: classlib/modules/luni/src/main/java/org/apache/harmony/luni/net/SocketOutputStream.java =================================================================== --- classlib/modules/luni/src/main/java/org/apache/harmony/luni/net/SocketOutputStream.java (revision 1074917) +++ classlib/modules/luni/src/main/java/org/apache/harmony/luni/net/SocketOutputStream.java (working copy) @@ -47,7 +47,7 @@ @Override public void write(byte[] buffer) throws IOException { - socket.write(buffer, 0, buffer.length); + write(buffer, 0, buffer.length); } @Override @@ -56,7 +56,13 @@ if (buffer != null) { if (0 <= offset && offset <= buffer.length && 0 <= count && count <= buffer.length - offset) { - socket.write(buffer, offset, count); + while (count > 0) { + int written = socket.write(buffer, offset, count); + if (written <= 0) + break; + offset += written; + count -= written; + } } else { throw new ArrayIndexOutOfBoundsException(Messages.getString("luni.13"));//$NON-NLS-1$ }