diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMEventHandler.java b/apps/sam/java/src/net/i2p/sam/client/SAMEventHandler.java index ae17b893d7412d24a256725bcdfb04fbd0a2ac0f..dc90d3fb2423dd31688e7e7cbcef8a0411158617 100644 --- a/apps/sam/java/src/net/i2p/sam/client/SAMEventHandler.java +++ b/apps/sam/java/src/net/i2p/sam/client/SAMEventHandler.java @@ -98,7 +98,7 @@ public class SAMEventHandler extends SAMClientEventListenerImpl { else return _helloOk.booleanValue() ? _version : null; } - } catch (InterruptedException ie) {} + } catch (InterruptedException ie) { return null; } } } @@ -116,7 +116,7 @@ public class SAMEventHandler extends SAMClientEventListenerImpl { else return _sessionCreateOk.booleanValue(); } - } catch (InterruptedException ie) {} + } catch (InterruptedException ie) { return false; } } } @@ -134,7 +134,7 @@ public class SAMEventHandler extends SAMClientEventListenerImpl { else return _streamStatusOk.booleanValue(); } - } catch (InterruptedException ie) {} + } catch (InterruptedException ie) { return false; } } } @@ -161,7 +161,7 @@ public class SAMEventHandler extends SAMClientEventListenerImpl { return val; } } - } catch (InterruptedException ie) {} + } catch (InterruptedException ie) { return null; } } } } diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMReader.java b/apps/sam/java/src/net/i2p/sam/client/SAMReader.java index 966d977cb7b95d14c1bd57dc62f9241201d237b4..f8a00b561b80dc8a7131673a9a4e59a69f9db23f 100644 --- a/apps/sam/java/src/net/i2p/sam/client/SAMReader.java +++ b/apps/sam/java/src/net/i2p/sam/client/SAMReader.java @@ -42,6 +42,7 @@ public class SAMReader { if (_thread != null) { _thread.interrupt(); _thread = null; + try { _inRaw.close(); } catch (IOException ioe) {} } } @@ -98,7 +99,7 @@ public class SAMReader { baos.write(c); } if (c == -1) { - _log.error("Error reading from the SAM bridge"); + _log.info("EOF reading from the SAM bridge"); break; } } catch (IOException ioe) { @@ -106,14 +107,12 @@ public class SAMReader { break; } - String line = new String(baos.toByteArray()); + String line = ""; + try { + line = new String(baos.toByteArray(), "ISO-8859-1"); + } catch (IOException ioe) {} baos.reset(); - if (line == null) { - _log.info("No more data from the SAM bridge"); - break; - } - if (_log.shouldDebug()) _log.debug("Line read from the bridge: " + line); @@ -121,7 +120,6 @@ public class SAMReader { if (tok.countTokens() < 2) { _log.error("Invalid SAM line: [" + line + "]"); - _live = false; break; } @@ -145,6 +143,7 @@ public class SAMReader { processEvent(major, minor, params); } + _live = false; if (_log.shouldWarn()) _log.warn("SAMReader exiting"); } diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java index 8b219124f748974c472aa152d79310fd2d95bb4b..2681122cea9b85403359a3fdf925171236447624 100644 --- a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java +++ b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java @@ -181,12 +181,14 @@ public class SAMStreamSend { } } - private void send(OutputStream samOut, SAMEventHandler eventHandler) { + private void send(OutputStream samOut, SAMEventHandler eventHandler) throws IOException { Sender sender = new Sender(samOut, eventHandler); boolean ok = sender.openConnection(); if (ok) { I2PAppThread t = new I2PAppThread(sender, "Sender"); t.start(); + } else { + throw new IOException("Sender failed to connect"); } }