diff --git a/src/java/com/threerings/presents/server/net/Connection.java b/src/java/com/threerings/presents/server/net/Connection.java index 8740e6aa4..a052fd0ed 100644 --- a/src/java/com/threerings/presents/server/net/Connection.java +++ b/src/java/com/threerings/presents/server/net/Connection.java @@ -280,8 +280,13 @@ public abstract class Connection implements NetEventHandler close(); } catch (ClassNotFoundException cnfe) { - Log.warning("Error reading message from socket " + - "[channel=" + _channel + ", error=" + cnfe + "]."); + try { + Log.warning("Error reading message from socket " + + "[channel=" + _channel + ", error=" + cnfe + "]."); + } catch (Error err) { + Log.warning("Error reading message from socket " + + "and error printing channel [error=" + cnfe + "]."); + } // deal with the failure handleFailure(new NestableIOException( "Unable to decode incoming message.", cnfe)); @@ -291,8 +296,14 @@ public abstract class Connection implements NetEventHandler // dropped the connection" failure String msg = ioe.getMessage(); if (msg == null || msg.indexOf("reset by peer") == -1) { - Log.warning("Error reading message from socket " + - "[channel=" + _channel + ", error=" + ioe + "]."); + try { + Log.warning("Error reading message from socket " + + "[channel=" + _channel + + ", error=" + ioe + "]."); + } catch (Error err) { + Log.warning("Error reading message from socket " + + "and error printing channel [error=" + ioe + "]."); + } } // deal with the failure handleFailure(ioe); diff --git a/src/java/com/threerings/presents/server/net/ConnectionManager.java b/src/java/com/threerings/presents/server/net/ConnectionManager.java index 4c065fb84..f61839052 100644 --- a/src/java/com/threerings/presents/server/net/ConnectionManager.java +++ b/src/java/com/threerings/presents/server/net/ConnectionManager.java @@ -583,9 +583,14 @@ public class ConnectionManager extends LoopingThread } if (!(channel instanceof SelectableChannel)) { - Log.warning("Provided with un-selectable socket as " + - "result of accept(), can't cope " + - "[channel=" + channel + "]."); + try { + Log.warning("Provided with un-selectable socket as " + + "result of accept(), can't cope " + + "[channel=" + channel + "]."); + } catch (Error err) { + Log.warning("Un-selectable channel also couldn't " + + "be printed."); + } // stick a fork in the socket channel.socket().close(); return;