Program: 37857
Project: 37857
Buggy source:
@Override public void channelRead0(final ChannelHandlerContext ctx,Object msg){
  if (msg instanceof FullHttpResponse) {
    FullHttpResponse http=(FullHttpResponse)msg;
    if (!handshaker.isHandshakeComplete()) {
      handshaker.finishHandshake(ctx.channel(),http);
      this.channelHandshaked(ctx);
      return;
    }
  }
 else   if (msg instanceof WebSocketFrame) {
    WebSocketFrame frame=(WebSocketFrame)msg;
    if (frame instanceof TextWebSocketFrame) {
      String message=((TextWebSocketFrame)frame).text();
      if (logger.isDebugEnabled())       logger.debug("String_Node_Str" + message);
      try {
        final AgentMessage request=this.transcoder.decodeFromString(message,AgentMessage.class);
        if (request instanceof AgentMessage) {
          ctx.executor().execute(new Runnable(){
            public void run(){
              try {
                AgentMessage response=processAgentMessage(ctx,request);
                if (response != null) {
                  ctx.channel().writeAndFlush(new TextWebSocketFrame(transcoder.encodeAsString(response)));
                }
              }
 catch (              Exception e) {
                ctx.channel().writeAndFlush(new TextWebSocketFrame(transcoder.encodeAsString(new GeneralError("String_Node_Str"))));
              }
            }
          }
);
        }
 else {
          ctx.channel().writeAndFlush(new TextWebSocketFrame(this.transcoder.encodeAsString(new GeneralError(request,"String_Node_Str"))));
        }
      }
 catch (      Exception e) {
        logger.error("String_Node_Str",e);
        ctx.channel().writeAndFlush(new TextWebSocketFrame(this.transcoder.encodeAsString(new GeneralError("String_Node_Str"))));
      }
    }
 else     if (frame instanceof PongWebSocketFrame) {
      logger.trace("String_Node_Str");
    }
 else     if (frame instanceof CloseWebSocketFrame) {
      logger.trace("String_Node_Str");
      ctx.close();
    }
  }
 else {
    throw new IllegalStateException("String_Node_Str" + msg);
  }
}

Fixed version (ground truth):
@Override public void channelRead0(final ChannelHandlerContext ctx,Object msg){
  if (msg instanceof FullHttpResponse) {
    FullHttpResponse http=(FullHttpResponse)msg;
    if (!handshaker.isHandshakeComplete()) {
      handshaker.finishHandshake(ctx.channel(),http);
      this.channelHandshaked(ctx);
      return;
    }
  }
 else   if (msg instanceof WebSocketFrame) {
    WebSocketFrame frame=(WebSocketFrame)msg;
    if (frame instanceof TextWebSocketFrame) {
      String message=((TextWebSocketFrame)frame).text();
      if (logger.isDebugEnabled())       logger.debug("String_Node_Str" + message);
      try {
        final AgentMessage request=this.transcoder.decodeFromString(message,AgentMessage.class);
        if (request instanceof AgentMessage) {
          ctx.executor().execute(new Runnable(){
            public void run(){
              try {
                AgentMessage response=processAgentMessage(ctx,request);
                if (response != null) {
                  ctx.channel().writeAndFlush(new TextWebSocketFrame(transcoder.encodeAsString(response)));
                }
              }
 catch (              Exception e) {
                ctx.channel().writeAndFlush(new TextWebSocketFrame(transcoder.encodeAsString(new GeneralError("String_Node_Str" + e.getMessage()))));
              }
            }
          }
);
        }
 else {
          ctx.channel().writeAndFlush(new TextWebSocketFrame(this.transcoder.encodeAsString(new GeneralError(request,"String_Node_Str"))));
        }
      }
 catch (      Exception e) {
        logger.error("String_Node_Str",e);
        ctx.channel().writeAndFlush(new TextWebSocketFrame(this.transcoder.encodeAsString(new GeneralError("String_Node_Str"))));
      }
    }
 else     if (frame instanceof PongWebSocketFrame) {
      logger.trace("String_Node_Str");
    }
 else     if (frame instanceof CloseWebSocketFrame) {
      logger.trace("String_Node_Str");
      ctx.close();
    }
  }
 else {
    throw new IllegalStateException("String_Node_Str" + msg);
  }
}