Author: norman
Date: Tue Jan 18 20:35:11 2011
New Revision: 1060563

URL: http://svn.apache.org/viewvc?rev=1060563&view=rev
Log:
Move NotEnoughDataException to NettyImapRequestLineReader as it is specific to 
this implementation

Removed:
    
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NotEnoughDataException.java
Modified:
    
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
    
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapRequestLineReader.java

Modified: 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java?rev=1060563&r1=1060562&r2=1060563&view=diff
==============================================================================
--- 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
 (original)
+++ 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
 Tue Jan 18 20:35:11 2011
@@ -41,7 +41,10 @@ public class ImapRequestFrameDecoder ext
         this.decoder = decoder;
     }
     
-    @Override
+    /*
+     * (non-Javadoc)
+     * @see 
org.jboss.netty.handler.codec.frame.FrameDecoder#decode(org.jboss.netty.channel.ChannelHandlerContext,
 org.jboss.netty.channel.Channel, org.jboss.netty.buffer.ChannelBuffer)
+     */
     protected Object decode(ChannelHandlerContext ctx, Channel channel, 
ChannelBuffer buffer) throws Exception {
         buffer.markReaderIndex();
         
@@ -49,7 +52,8 @@ public class ImapRequestFrameDecoder ext
         Object attachment = ctx.getAttachment();
         if (attachment != null) {
             int size = (Integer) attachment;
-            if (size != NotEnoughDataException.UNKNOWN_SIZE && size > 
buffer.readableBytes()) {
+            // now see if the buffer hold enough data to process.
+            if (size != 
NettyImapRequestLineReader.NotEnoughDataException.UNKNOWN_SIZE && size > 
buffer.readableBytes()) {
                 buffer.resetReaderIndex();
                 
                 return null;
@@ -57,6 +61,7 @@ public class ImapRequestFrameDecoder ext
         }
         
         try {
+            
             ImapRequestLineReader reader = new 
NettyImapRequestLineReader(channel, buffer);
             ImapMessage message = decoder.decode(reader, (ImapSession) 
attributes.get(channel));
 
@@ -65,9 +70,10 @@ public class ImapRequestFrameDecoder ext
 
             ctx.setAttachment(null);
             return message;
-        } catch (NotEnoughDataException e) {
+        } catch (NettyImapRequestLineReader.NotEnoughDataException e) {
             // this exception was thrown because we don't have enough data yet 
             int neededData = e.getNeededSize();
+            // store the needed data size for later usage
             ctx.setAttachment(neededData);
             buffer.resetReaderIndex();
             return null;

Modified: 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapRequestLineReader.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapRequestLineReader.java?rev=1060563&r1=1060562&r2=1060563&view=diff
==============================================================================
--- 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapRequestLineReader.java
 (original)
+++ 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/NettyImapRequestLineReader.java
 Tue Jan 18 20:35:11 2011
@@ -85,4 +85,30 @@ public class NettyImapRequestLineReader 
     protected void commandContinuationRequest() throws DecodingException {
         channel.write(cRequest);
     }
+    
+    
+    @SuppressWarnings("serial")
+    public final class NotEnoughDataException extends RuntimeException{
+
+        public final static int UNKNOWN_SIZE = -1;
+        private int size;
+
+        public NotEnoughDataException(int size) {
+            this.size = size;
+        }
+        
+        public NotEnoughDataException() {
+            this(UNKNOWN_SIZE);
+        }
+        
+        /**
+         * Return the size of the data which is needed
+         * 
+         * @return size
+         */
+        public int getNeededSize() {
+            return size;
+        }
+    }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to