Author: rdonkin Date: Wed Sep 16 10:05:47 2009 New Revision: 815703 URL: http://svn.apache.org/viewvc?rev=815703&view=rev Log: JAMES-920 Switch to imperative method name. defaultErrorHandler in the ProtocolContext API just logs so avoided a callback by removing the method from the API and calling directly. https://issues.apache.org/jira/browse/JAMES-920
Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolContext.java james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java?rev=815703&r1=815702&r2=815703&view=diff ============================================================================== --- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java (original) +++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java Wed Sep 16 10:05:47 2009 @@ -297,7 +297,21 @@ log.debug( ioe.getMessage(), ioe ); } } catch (RuntimeException e) { - errorHandler(e); + if (log.isErrorEnabled()) { + log.error(e.getMessage(), e ); + } + if (log.isInfoEnabled()) { + StringBuilder exceptionBuffer = + new StringBuilder(128) + .append("Fatal exception during connection from ") + .append(getRemoteHost()) + .append(" (") + .append(getRemoteIP()) + .append("): ") + .append(e.getMessage()); + log.info(exceptionBuffer.toString(), e); + } + protocolHandler.fatalFailure(e); } finally { //Clear all the session state variables cleanHandler(); @@ -433,20 +447,6 @@ remoteIP = null; } - protected void errorHandler(RuntimeException e) { - protocolHandler.errorHandler(e); - } - - /** - * @see org.apache.james.socket.ProtocolContext#defaultErrorHandler(java.lang.RuntimeException) - */ - public void defaultErrorHandler(RuntimeException e) { - if (log.isErrorEnabled()) { - log.error( "Unexpected runtime exception: " - + e.getMessage(), e ); - } - } - /** * @see org.apache.james.socket.ProtocolContext#getRemoteIP() */ Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolContext.java URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolContext.java?rev=815703&r1=815702&r2=815703&view=diff ============================================================================== --- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolContext.java (original) +++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolContext.java Wed Sep 16 10:05:47 2009 @@ -87,12 +87,6 @@ public PrintWriter getOutputWriter(); /** - * Provides basic errorhandling cleanup. - * @param e the runtimeexception - */ - public void defaultErrorHandler(RuntimeException e); - - /** * Is the socket disconnected? * @return true if the connection has disconnected, * false otherwise Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java?rev=815703&r1=815702&r2=815703&view=diff ============================================================================== --- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java (original) +++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java Wed Sep 16 10:05:47 2009 @@ -43,9 +43,10 @@ public void setProtocolHandlerHelper(ProtocolContext phh); /** - * Provides errorHandling + * Called when a fatal failure occurs during processing. + * Provides a last ditch chance to send a message to the client. * @param e exception */ - public abstract void errorHandler(RuntimeException e); + public abstract void fatalFailure(RuntimeException e); } \ No newline at end of file Modified: james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java URL: http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java?rev=815703&r1=815702&r2=815703&view=diff ============================================================================== --- james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java (original) +++ james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java Wed Sep 16 10:05:47 2009 @@ -120,13 +120,12 @@ * * @param e the RuntimeException */ - public void errorHandler(RuntimeException e) { + public void fatalFailure(RuntimeException e) { try { helper.getOutputStream().write(EMERGENCY_SIGNOFF); } catch (Throwable t) { getLogger().debug("Write emergency signoff failed.", t); } - helper.defaultErrorHandler(e); } public Log getLogger() { Modified: james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java URL: http://svn.apache.org/viewvc/james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java?rev=815703&r1=815702&r2=815703&view=diff ============================================================================== --- james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java (original) +++ james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java Wed Sep 16 10:05:47 2009 @@ -286,10 +286,9 @@ } /** - * @see org.apache.james.socket.AbstractJamesHandler#errorHandler(java.lang.RuntimeException) + * @see org.apache.james.socket.AbstractJamesHandler#fatalFailure(java.lang.RuntimeException) */ - public void errorHandler(RuntimeException e) { - helper.defaultErrorHandler(e); + public void fatalFailure(RuntimeException e) { // If the connection has been idled out, the // socket will be closed and null. Do NOT // log the exception or attempt to send the Modified: james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java?rev=815703&r1=815702&r2=815703&view=diff ============================================================================== --- james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java (original) +++ james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java Wed Sep 16 10:05:47 2009 @@ -258,10 +258,9 @@ } /** - * @see org.apache.james.socket.AbstractJamesHandler#errorHandler(java.lang.RuntimeException) + * @see org.apache.james.socket.AbstractJamesHandler#fatalFailure(java.lang.RuntimeException) */ - public void errorHandler(RuntimeException e) { - helper.defaultErrorHandler(e); + public void fatalFailure(RuntimeException e) { try { helper.getOutputWriter().println(ERR_RESPONSE + " Error closing connection."); helper.getOutputWriter().flush(); Modified: james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java?rev=815703&r1=815702&r2=815703&view=diff ============================================================================== --- james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java (original) +++ james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java Wed Sep 16 10:05:47 2009 @@ -195,22 +195,11 @@ } /** - * @see org.apache.james.socket.AbstractJamesHandler#errorHandler(java.lang.RuntimeException) + * @see org.apache.james.socket.AbstractJamesHandler#fatalFailure(java.lang.RuntimeException) */ - public void errorHandler(RuntimeException e) { + public void fatalFailure(RuntimeException e) { helper.getOutputWriter().println("Unexpected Error: "+e.getMessage()); helper.getOutputWriter().flush(); - if (helper.getLogger().isErrorEnabled()) { - StringBuilder exceptionBuffer = - new StringBuilder(128) - .append("Exception during connection from ") - .append(helper.getRemoteHost()) - .append(" (") - .append(helper.getRemoteIP()) - .append("): ") - .append(e.getMessage()); - helper.getLogger().error(exceptionBuffer.toString(),e); - } } /** Modified: james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java?rev=815703&r1=815702&r2=815703&view=diff ============================================================================== --- james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java (original) +++ james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java Wed Sep 16 10:05:47 2009 @@ -371,8 +371,7 @@ } } - public void errorHandler(RuntimeException e) { - helper.defaultErrorHandler(e); + public void fatalFailure(RuntimeException e) { } public void setProtocolHandlerHelper(ProtocolContext phh) { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org