Author: norman Date: Sun Feb 5 13:41:46 2012 New Revision: 1240728 URL: http://svn.apache.org/viewvc?rev=1240728&view=rev Log: ImapRequestFrameDecoder should handle big literals more efficient. See JAMES-1370
Modified: james/server/trunk/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java Modified: james/server/trunk/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java?rev=1240728&r1=1240727&r2=1240728&view=diff ============================================================================== --- james/server/trunk/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java (original) +++ james/server/trunk/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java Sun Feb 5 13:41:46 2012 @@ -207,11 +207,13 @@ public class ImapRequestFrameDecoder ext @SuppressWarnings("unchecked") @Override protected ChannelBuffer createCumulationDynamicBuffer(ChannelHandlerContext ctx) { + Map<String, Object> attachment = (Map<String, Object>) ctx.getAttachment(); + int size = (Integer) attachment.get(NEEDED_DATA); + if (inMemorySizeLimit > 0) { - return ChannelBuffers.dynamicBuffer(inMemorySizeLimit, ctx.getChannel().getConfig().getBufferFactory()); + return ChannelBuffers.dynamicBuffer(Math.min(size, inMemorySizeLimit), ctx.getChannel().getConfig().getBufferFactory()); } else { - Map<String, Object> attachment = (Map<String, Object>) ctx.getAttachment(); - int size = (Integer) attachment.get(NEEDED_DATA); + if (size > 0) { return ChannelBuffers.dynamicBuffer(size, ctx.getChannel().getConfig().getBufferFactory()); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org