projects
/
org.ibex.io.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
improve exception handling
[org.ibex.io.git]
/
src
/
org
/
ibex
/
io
/
Stream.java
diff --git
a/src/org/ibex/io/Stream.java
b/src/org/ibex/io/Stream.java
index
0d6c169
..
8bfa8bc
100644
(file)
--- a/
src/org/ibex/io/Stream.java
+++ b/
src/org/ibex/io/Stream.java
@@
-25,7
+25,8
@@
public class Stream {
return this;
}
return this;
}
- public static boolean loggingEnabled = "true".equals(System.getProperty("ibex.io.stream.logEnabled", "false"));
+ //public static boolean loggingEnabled = "true".equals(System.getProperty("ibex.io.stream.logEnabled", "false"));
+ public static boolean loggingEnabled = true;
public void transcribe(Stream out) { transcribe(out, false); }
public void transcribe(Stream out, boolean close) {
public void transcribe(Stream out) { transcribe(out, false); }
public void transcribe(Stream out, boolean close) {
@@
-37,7
+38,7
@@
public class Stream {
out.out.write(buf, 0, numread);
}
if (close) out.close();
out.out.write(buf, 0, numread);
}
if (close) out.close();
- } catch (IOException ioe) { throw new StreamException(ioe); }
+ } catch (IOException ioe) { ioe(ioe); }
}
public void transcribe(StringBuffer out) {
}
public void transcribe(StringBuffer out) {
@@
-48,7
+49,7
@@
public class Stream {
if (numread==-1) return;
out.append(buf, 0, numread);
}
if (numread==-1) return;
out.append(buf, 0, numread);
}
- //} catch (IOException ioe) { throw new StreamException(ioe); }
+ //} catch (IOException ioe) { ioe(ioe); }
}
public static int countLines(Stream s) {
}
public static int countLines(Stream s) {
@@
-63,15
+64,19
@@
public class Stream {
public Stream(InputStream in, OutputStream out) { this.in = new Stream.In(in); this.out = new Stream.Out(out); }
public Stream(String s) { this(new ByteArrayInputStream(s.getBytes())); }
public Stream(File f) {
public Stream(InputStream in, OutputStream out) { this.in = new Stream.In(in); this.out = new Stream.Out(out); }
public Stream(String s) { this(new ByteArrayInputStream(s.getBytes())); }
public Stream(File f) {
- try { this.in = new Stream.In(new FileInputStream(f)); } catch (IOException e) { throw new StreamException(e); }
+ try { this.in = new Stream.In(new FileInputStream(f)); } catch (IOException e) { ioe(e); throw new Error(); }
this.out = null;
}
public Stream(Socket s) {
this.out = null;
}
public Stream(Socket s) {
- try { this.in = new Stream.In(s.getInputStream()); } catch (IOException e) { throw new StreamException(e); }
- try { this.out = new Stream.Out(s.getOutputStream()); } catch (IOException e) { throw new StreamException(e); }
+ try { this.in = new Stream.In(s.getInputStream()); } catch (IOException e) { ioe(e); throw new Error(); }
+ try { this.out = new Stream.Out(s.getOutputStream()); } catch (IOException e) { ioe(e); throw new Error(); }
}
}
- private static int ioe(Exception e) { throw new StreamException(e); }
+ static int ioe(IOException e) {
+ if (e instanceof SocketException && e.toString().indexOf("Connection reset")!=-1)
+ throw new Closed(e.getMessage());
+ throw new StreamException(e);
+ }
public static class StreamException extends RuntimeException {
public StreamException(Exception e) { super(e); }
public StreamException(String s) { super(s); }
public static class StreamException extends RuntimeException {
public StreamException(Exception e) { super(e); }
public StreamException(String s) { super(s); }
@@
-164,6
+169,7
@@
public class Stream {
public void unread(String s) { in.unread(s); }
public void unread(String s) { in.unread(s); }
+ /** should not throw exceptions */
public void close() { try { if (in!=null) in.close(); } finally { if (out!=null) out.close(); } }
public void setNewline(String s) { newLine = s; }
public void close() { try { if (in!=null) in.close(); } finally { if (out!=null) out.close(); } }
public void setNewline(String s) { newLine = s; }