diff --git a/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java b/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java index 4e6bd5dc788fb49e276c380afa6170a0c43e5a9e..a44c905430768e70d06c00af3d06385f813d33bd 100644 --- a/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java +++ b/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java @@ -107,11 +107,26 @@ public class SAMv1Handler extends SAMHandler implements SAMRawReceiver, SAMDatag break; } - msg = DataHelper.readLine(getClientSocket().socket().getInputStream()).trim(); + SocketChannel clientSocketChannel = getClientSocket() ; + if (clientSocketChannel == null) { + _log.info("Connection closed by client"); + break; + } + if (clientSocketChannel.socket() == null) { + _log.info("Connection closed by client"); + break; + } + java.io.InputStream is = clientSocketChannel.socket().getInputStream(); + if (is == null) { + _log.info("Connection closed by client"); + break; + } + msg = DataHelper.readLine(is); if (msg == null) { - _log.debug("Connection closed by client"); + _log.info("Connection closed by client (line read : null)"); break; } + msg = msg.trim(); if (_log.shouldLog(Log.DEBUG)) { _log.debug("New message received: [" + msg + "]"); diff --git a/apps/sam/java/src/net/i2p/sam/SAMv3DatagramSession.java b/apps/sam/java/src/net/i2p/sam/SAMv3DatagramSession.java index 69f14430df448c734cf5e19db6d32699f77374d7..d7f119377aa5aaa262287eaf3b34779686c8dd57 100644 --- a/apps/sam/java/src/net/i2p/sam/SAMv3DatagramSession.java +++ b/apps/sam/java/src/net/i2p/sam/SAMv3DatagramSession.java @@ -38,7 +38,7 @@ public class SAMv3DatagramSession extends SAMDatagramSession implements SAMv3Han * @throws I2PSessionException */ public SAMv3DatagramSession(String nick) - throws IOException, DataFormatException, I2PSessionException { + throws IOException, DataFormatException, I2PSessionException, SAMException { super(SAMv3Handler.sSessionsHash.get(nick).getDest(), SAMv3Handler.sSessionsHash.get(nick).getProps(), @@ -49,7 +49,7 @@ public class SAMv3DatagramSession extends SAMDatagramSession implements SAMv3Han this.server = SAMv3Handler.DatagramServer.getInstance() ; SAMv3Handler.SessionRecord rec = SAMv3Handler.sSessionsHash.get(nick); - if ( rec==null ) throw new InterruptedIOException() ; + if ( rec==null ) throw new SAMException("Record disappeared for nickname : \""+nick+"\"") ; this.handler = rec.getHandler(); diff --git a/apps/sam/java/src/net/i2p/sam/SAMv3Handler.java b/apps/sam/java/src/net/i2p/sam/SAMv3Handler.java index 7a64d84416c76b7a8ec629d434de392838c94579..80fa7cf63cd4514e8899082266691de98b311673 100644 --- a/apps/sam/java/src/net/i2p/sam/SAMv3Handler.java +++ b/apps/sam/java/src/net/i2p/sam/SAMv3Handler.java @@ -564,7 +564,7 @@ public class SAMv3Handler extends SAMv1Handler _log.debug("I2P error when instantiating session", e); return writeString("SESSION STATUS RESULT=I2P_ERROR DESTINATION=" + dest + " MESSAGE=\"" + e.getMessage() + "\"\n"); } catch (SAMException e) { - _log.error("Unexpected SAM error", e); + _log.info("Funny SAM error", e); return writeString("SESSION STATUS RESULT=I2P_ERROR DESTINATION=" + dest + " MESSAGE=\"" + e.getMessage() + "\"\n"); } catch (IOException e) { _log.error("Unexpected IOException", e); diff --git a/apps/sam/java/src/net/i2p/sam/SAMv3StreamSession.java b/apps/sam/java/src/net/i2p/sam/SAMv3StreamSession.java index 26d99fa014eb04dcd25a341770e01e9fd5327cb2..699058613c143e885ed84a4e9e4a69f295d43d2f 100644 --- a/apps/sam/java/src/net/i2p/sam/SAMv3StreamSession.java +++ b/apps/sam/java/src/net/i2p/sam/SAMv3StreamSession.java @@ -197,7 +197,7 @@ public class SAMv3StreamSession extends SAMStreamSession implements SAMv3Handle SAMv3Handler.SessionRecord rec = SAMv3Handler.sSessionsHash.get(nick); - if ( rec==null ) throw new InterruptedIOException() ; + if ( rec==null || i2ps==null ) throw new InterruptedIOException() ; if (verbose) handler.notifyStreamIncomingConnection(i2ps.getPeerDestination()) ; diff --git a/history.txt b/history.txt index ae63f7a8dd5631bf031b5a1e70ad4a8392b26837..79ee79f2e07d6f01585ec5b191d11cac675ebcac 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2009-05-24 mkvore + * SAM: logging some exceptions at INFO level instead of ERROR + 2009-05-24 zzz * Connection limits / throttle: - Better limits when no inbound TCP diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index e4d51a2bbbc6525a11e0ae2b6866c05bfb2d3470..b54d1de4bcebaa2676a267138f4700e337aabb2f 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 4; + public final static long BUILD = 5; /** for example "-test" */ public final static String EXTRA = ""; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;