You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2011/02/08 22:18:06 UTC
svn commit: r1068583 -
/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java
Author: ngn
Date: Tue Feb 8 21:18:04 2011
New Revision: 1068583
URL: http://svn.apache.org/viewvc?rev=1068583&view=rev
Log:
Improve exception handling when S2S sockets are closing down
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java?rev=1068583&r1=1068582&r2=1068583&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java Tue Feb 8 21:18:04 2011
@@ -18,6 +18,7 @@
*
*/
package org.apache.vysper.xmpp.server.s2s;
+import java.io.IOException;
import java.nio.channels.UnresolvedAddressException;
import java.util.Arrays;
import java.util.List;
@@ -239,7 +240,12 @@ public class DefaultXMPPServerConnector
*/
@Override
public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
- LOG.warn("Exception thrown by XMPP server connector to " + otherServer + ", probably a bug in Vysper", cause);
+ if(cause instanceof IOException) {
+ // socket closed
+ close();
+ } else {
+ LOG.warn("Exception thrown by XMPP server connector to " + otherServer + ", probably a bug in Vysper", cause);
+ }
}
private StanzaHandler lookupHandler(Stanza stanza) {
@@ -268,6 +274,9 @@ public class DefaultXMPPServerConnector
Stanza opener = new ServerResponses().getStreamOpenerForServerConnector(serverRuntimeContext.getServerEnitity(), otherServer, XMPPVersion.VERSION_1_0, sessionContext);
sessionContext.write(opener);
+ } else if(message == SslFilter.SESSION_UNSECURED) {
+ // unsecured, closing
+ close();
} else if(message instanceof Stanza) {
Stanza stanza = (Stanza) message;
@@ -318,7 +327,7 @@ public class DefaultXMPPServerConnector
// TODO other stanzas coming here?
}
} else {
- throw new RuntimeException("Only handles SSL events and stanzas");
+ throw new RuntimeException("Only handles SSL events and stanzas, got: " + message.getClass());
}
}