Author: joachim Date: Tue Nov 21 00:16:33 2006 New Revision: 477572 URL: http://svn.apache.org/viewvc?view=rev&rev=477572 Log: - log caught ProtocolException to debug - embed caucht Exceptions into ProtocolException - possible solution for JAMES-709 thanks to Robert Burrell Donkin for reporting the issue
Modified: james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestHandler.java james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestLineReader.java Modified: james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestHandler.java URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestHandler.java?view=diff&rev=477572&r1=477571&r2=477572 ============================================================================== --- james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestHandler.java (original) +++ james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestHandler.java Tue Nov 21 00:16:33 2006 @@ -46,7 +46,7 @@ } /** - * This method parses POP3 commands read off the wire in handleConnection. + * This method parses IMAP commands read off the wire in handleConnection. * Actual processing of the command (possibly including additional back and * forth communication with the client) is delegated to one of a number of * command specific handler methods. The primary purpose of this method is @@ -61,10 +61,13 @@ throws ProtocolException { ImapRequestLineReader request = new ImapRequestLineReader( input, output ); + setupLogger(request); + try { request.nextChar(); } catch ( ProtocolException e ) { + getLogger().debug("Cannot handling request: ", e); return false; } Modified: james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestLineReader.java URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestLineReader.java?view=diff&rev=477572&r1=477571&r2=477572 ============================================================================== --- james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestLineReader.java (original) +++ james/server/trunk/src/java/org/apache/james/imapserver/ImapRequestLineReader.java Tue Nov 21 00:16:33 2006 @@ -23,6 +23,8 @@ import java.io.InputStream; import java.io.OutputStream; +import org.apache.avalon.framework.logger.AbstractLogEnabled; + /** * Wraps the client input reader with a bunch of convenience methods, allowing lookahead=1 * on the underlying character stream. @@ -30,7 +32,7 @@ * * @version $Revision: 109034 $ */ -public class ImapRequestLineReader +public class ImapRequestLineReader extends AbstractLogEnabled { private InputStream input; private OutputStream output; @@ -61,7 +63,7 @@ } if ( next == '\r' || next == '\n' ) { - throw new ProtocolException( "Missing argument." ); + throw new ProtocolException( "Missing argument. (read \\n or \\r)" ); } return next; @@ -82,7 +84,7 @@ next = input.read(); } catch ( IOException e ) { - throw new ProtocolException( "Error reading from stream." ); + throw new ProtocolException( "Error reading from stream.", e); } if ( next == -1 ) { throw new ProtocolException( "Unexpected end of stream." ); @@ -119,8 +121,7 @@ // Check if we found extra characters. if ( next != '\n' ) { - // TODO debug log here and other exceptions - throw new ProtocolException( "Expected end-of-line, found more characters."); + throw new ProtocolException( "Expected end-of-line, found more characters. ("+((int)next)+")"); } } @@ -157,7 +158,7 @@ int count = 0; count = input.read( holder, readTotal, holder.length - readTotal ); if ( count == -1 ) { - throw new ProtocolException( "Unexpectd end of stream." ); + throw new ProtocolException( "Unexpected end of stream." ); } readTotal += count; } @@ -166,7 +167,7 @@ nextChar = 0; } catch ( IOException e ) { - throw new ProtocolException( "Error reading from stream." ); + throw new ProtocolException( "Error reading from stream." , e); } } @@ -185,7 +186,7 @@ output.flush(); } catch ( IOException e ) { - throw new ProtocolException("Unexpected exception in sending command continuation request."); + throw new ProtocolException("Unexpected exception in sending command continuation request.", e); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]