From 14cf227c46afcd8015abcfc4e2b37617a7028e3d Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Fri, 1 Jun 2012 23:11:01 -0700 Subject: [PATCH] Fix a test failure --- .../io/netty/handler/codec/embedder/DecoderEmbedder.java | 9 ++++++++- .../AbstractCompatibleMarshallingDecoderTest.java | 3 --- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/codec/src/main/java/io/netty/handler/codec/embedder/DecoderEmbedder.java b/codec/src/main/java/io/netty/handler/codec/embedder/DecoderEmbedder.java index 627d2420c8..ee8277c104 100644 --- a/codec/src/main/java/io/netty/handler/codec/embedder/DecoderEmbedder.java +++ b/codec/src/main/java/io/netty/handler/codec/embedder/DecoderEmbedder.java @@ -19,6 +19,7 @@ import io.netty.buffer.ChannelBuffer; import io.netty.buffer.ChannelBuffers; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelPipeline; +import io.netty.channel.NoSuchBufferException; import io.netty.handler.codec.CodecException; import io.netty.handler.codec.DecoderException; import io.netty.handler.codec.base64.Base64Decoder; @@ -57,7 +58,13 @@ public class DecoderEmbedder extends AbstractCodecEmbedder { @Override public boolean offer(Object input) { if (input instanceof ChannelBuffer) { - pipeline().inboundByteBuffer().writeBytes((ChannelBuffer) input); + try { + pipeline().inboundByteBuffer().writeBytes((ChannelBuffer) input); + } catch (NoSuchBufferException e) { + // Throwing and catching this exception is cheap because we do not fill + // stack traces internally (see DefaultChannelPipeline). + pipeline().inboundMessageBuffer().add(input); + } } else { pipeline().inboundMessageBuffer().add(input); } diff --git a/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingDecoderTest.java b/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingDecoderTest.java index c387b96de0..121545bddd 100644 --- a/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingDecoderTest.java +++ b/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingDecoderTest.java @@ -121,10 +121,7 @@ public abstract class AbstractCompatibleMarshallingDecoderTest { fail(); } catch (CodecException e) { assertEquals(TooLongFrameException.class, e.getClass()); - - } - } protected ChannelHandler createDecoder(int maxObjectSize) {