diff --git a/transport/src/main/java/io/netty/channel/ChannelInboundMessageHandlerAdapter.java b/transport/src/main/java/io/netty/channel/ChannelInboundMessageHandlerAdapter.java
index <HASH>..<HASH> 100644
--- a/transport/src/main/java/io/netty/channel/ChannelInboundMessageHandlerAdapter.java
+++ b/transport/src/main/java/io/netty/channel/ChannelInboundMessageHandlerAdapter.java
@@ -28,6 +28,8 @@ public abstract class ChannelInboundMessageHandlerAdapter<I>
 
     @Override
     public final void inboundBufferUpdated(ChannelHandlerContext ctx) throws Exception {
+        firstMessageReceived(ctx);
+
         MessageBuf<I> in = ctx.inboundMessageBuffer();
         for (;;) {
             I msg = in.poll();
@@ -40,7 +42,11 @@ public abstract class ChannelInboundMessageHandlerAdapter<I>
                 ctx.fireExceptionCaught(t);
             }
         }
+
+        lastMessageReceived(ctx);
     }
 
+    public void firstMessageReceived(ChannelHandlerContext ctx) throws Exception { }
     public abstract void messageReceived(ChannelHandlerContext ctx, I msg) throws Exception;
+    public void lastMessageReceived(ChannelHandlerContext ctx) throws Exception { }
 }
[#<I>] Provide pre/post handler methods to ChannelInboundMessageHandler.inboundBufferUpdated()

- Add pre- and post- handler methods