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: [email protected]
For additional commands, e-mail: [email protected]