diff --git a/httpclient/src/main/java/org/apache/http/impl/conn/LoggingInputStream.java b/httpclient/src/main/java/org/apache/http/impl/conn/LoggingInputStream.java index f53cf9b21..5b14fd515 100644 --- a/httpclient/src/main/java/org/apache/http/impl/conn/LoggingInputStream.java +++ b/httpclient/src/main/java/org/apache/http/impl/conn/LoggingInputStream.java @@ -51,48 +51,79 @@ public LoggingInputStream(final InputStream in, final Wire wire) { @Override public int read() throws IOException { - final int b = in.read(); - if (b != -1) { - wire.input(b); + try { + final int b = in.read(); + if (b == -1) { + wire.input("end of stream"); + } else { + wire.input(b); + } + return b; + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; } - return b; } @Override public int read(final byte[] b) throws IOException { - final int bytesRead = in.read(b); - if (bytesRead != -1) { - wire.input(b, 0, bytesRead); + try { + final int bytesRead = in.read(b); + if (bytesRead == -1) { + wire.input("end of stream"); + } else if (bytesRead > 0) { + wire.input(b, 0, bytesRead); + } + return bytesRead; + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; } - return bytesRead; } @Override public int read(final byte[] b, final int off, final int len) throws IOException { - final int bytesRead = in.read(b, off, len); - if (bytesRead != -1) { - wire.input(b, off, bytesRead); + try { + final int bytesRead = in.read(b, off, len); + if (bytesRead == -1) { + wire.input("end of stream"); + } else if (bytesRead > 0) { + wire.input(b, off, bytesRead); + } + return bytesRead; + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; } - return bytesRead; } @Override public long skip(final long n) throws IOException { - return super.skip(n); + try { + return super.skip(n); + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; + } } @Override public int available() throws IOException { - return in.available(); + try { + return in.available(); + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; + } } @Override - public synchronized void mark(final int readlimit) { + public void mark(final int readlimit) { super.mark(readlimit); } @Override - public synchronized void reset() throws IOException { + public void reset() throws IOException { super.reset(); } @@ -103,7 +134,12 @@ public boolean markSupported() { @Override public void close() throws IOException { - in.close(); + try { + in.close(); + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; + } } } diff --git a/httpclient/src/main/java/org/apache/http/impl/conn/LoggingOutputStream.java b/httpclient/src/main/java/org/apache/http/impl/conn/LoggingOutputStream.java index db882cf85..48e63c5ad 100644 --- a/httpclient/src/main/java/org/apache/http/impl/conn/LoggingOutputStream.java +++ b/httpclient/src/main/java/org/apache/http/impl/conn/LoggingOutputStream.java @@ -51,29 +51,54 @@ public LoggingOutputStream(final OutputStream out, final Wire wire) { @Override public void write(final int b) throws IOException { - wire.output(b); + try { + wire.output(b); + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; + } } @Override public void write(final byte[] b) throws IOException { - wire.output(b); - out.write(b); + try { + wire.output(b); + out.write(b); + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; + } } @Override public void write(final byte[] b, final int off, final int len) throws IOException { - wire.output(b, off, len); - out.write(b, off, len); + try { + wire.output(b, off, len); + out.write(b, off, len); + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; + } } @Override public void flush() throws IOException { - out.flush(); + try { + out.flush(); + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; + } } @Override public void close() throws IOException { - out.close(); + try { + out.close(); + } catch (IOException ex) { + wire.input("I/O error: " + ex.getMessage()); + throw ex; + } } } diff --git a/httpclient/src/main/java/org/apache/http/impl/conn/Wire.java b/httpclient/src/main/java/org/apache/http/impl/conn/Wire.java index 692c69577..e3bffd33f 100644 --- a/httpclient/src/main/java/org/apache/http/impl/conn/Wire.java +++ b/httpclient/src/main/java/org/apache/http/impl/conn/Wire.java @@ -138,20 +138,12 @@ public void input(final int b) input(new byte[] {(byte) b}); } - /** - * @deprecated (4.1) do not use - */ - @Deprecated public void output(final String s) throws IOException { Args.notNull(s, "Output"); output(s.getBytes()); } - /** - * @deprecated (4.1) do not use - */ - @Deprecated public void input(final String s) throws IOException { Args.notNull(s, "Input");