You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2009/09/16 12:05:47 UTC

svn commit: r815703 - in /james/server/trunk: avalon-socket-library/src/main/java/org/apache/james/socket/ imapserver-function/src/main/java/org/apache/james/imapserver/ nntpserver-function/src/main/java/org/apache/james/nntpserver/ pop3server-function...

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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org