diff --git a/src/java/org/jivesoftware/multiplexer/net/http/HttpBindServlet.java b/src/java/org/jivesoftware/multiplexer/net/http/HttpBindServlet.java index 06bfe8d..20b8257 100644 --- a/src/java/org/jivesoftware/multiplexer/net/http/HttpBindServlet.java +++ b/src/java/org/jivesoftware/multiplexer/net/http/HttpBindServlet.java @@ -126,6 +126,10 @@ } return; } + catch (HttpConnectionClosedException nc) { + Log.error("Error sending packet to client.", nc); + return; + } connection.setContinuation(ContinuationSupport.getContinuation(request, connection)); request.setAttribute("request-connection", connection); respond(response, connection); diff --git a/src/java/org/jivesoftware/multiplexer/net/http/HttpSessionManager.java b/src/java/org/jivesoftware/multiplexer/net/http/HttpSessionManager.java index 94fd110..d186b6c 100644 --- a/src/java/org/jivesoftware/multiplexer/net/http/HttpSessionManager.java +++ b/src/java/org/jivesoftware/multiplexer/net/http/HttpSessionManager.java @@ -136,6 +136,9 @@ public void sessionClosed(Session session) { HttpSession.removeSession(session.getStreamID()); + if(session instanceof HttpSession) { + timer.stop((HttpSession) session); + } serverSurrogate.clientSessionClosed(session.getStreamID()); } }); @@ -202,7 +205,6 @@ public void stop(HttpSession session) { InactivityTimeoutTask task = sessionMap.remove(session.getStreamID()); if(task != null) { - session.removeSessionCloseListener(task); task.cancel(); } } @@ -214,12 +216,11 @@ } InactivityTimeoutTask task = new InactivityTimeoutTask(session); schedule(task, session.getInactivityTimeout() * 1000); - session.addSessionCloseListener(task); sessionMap.put(session.getStreamID(), task); } } - private class InactivityTimeoutTask extends TimerTask implements SessionListener { + private class InactivityTimeoutTask extends TimerTask { private Session session; public InactivityTimeoutTask(Session session) { @@ -229,15 +230,5 @@ public void run() { session.close(); } - - public void connectionOpened(Session session, HttpConnection connection) { - } - - public void connectionClosed(Session session, HttpConnection connection) { - } - - public void sessionClosed(Session session) { - this.cancel(); - } } }