Throw IllegalStateException if DynamicChannelBuffer exceed the maximum

ChannelBuffer size of 2gb. See #258
This commit is contained in:
norman 2012-04-16 09:55:03 +02:00
parent f25453cd36
commit 05615c4779

View File

@ -73,6 +73,15 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
int minNewCapacity = writerIndex() + minWritableBytes;
while (newCapacity < minNewCapacity) {
newCapacity <<= 1;
// Check if we exceeded the maximum size of 2gb if this is the case then
// newCapacity == 0
//
// https://github.com/netty/netty/issues/258
if (newCapacity == 0) {
throw new IllegalStateException("Maximum size of 2gb exceeded");
}
}
ChannelBuffer newBuffer = factory().getBuffer(order(), newCapacity);