Program: 50682
Project: 50682
Buggy source:
public final void handle(){
  if (!connection.live())   return;
  try {
    final int readBytes=socketChannel.read(inBuffer);
    if (readBytes == -1) {
      connection.close();
      return;
    }
    if (readBytes <= 0) {
      return;
    }
  }
 catch (  final Exception e) {
    if (packet != null) {
      packet.returnToContainer();
      packet=null;
    }
    handleSocketException(e);
    return;
  }
  try {
    inBuffer.flip();
    while (true) {
      final int remaining=inBuffer.remaining();
      if (remaining <= 0) {
        inBuffer.clear();
        return;
      }
      if (packet == null) {
        if (remaining >= 12) {
          packet=obtainReadable();
          if (packet == null) {
            throw new RuntimeException(messageRead + "String_Node_Str" + connection.getEndPoint());
          }
        }
 else {
          inBuffer.compact();
          return;
        }
      }
      final boolean full=packet.read(inBuffer);
      if (full) {
        if (readCount++ % 10000 == 0) {
          logger.log(Level.FINEST,"String_Node_Str" + readCount);
          readCount=1;
        }
        messageRead++;
        packet.flipBuffers();
        packet.read();
        packet.setFromConnection(connection);
        ClusterService.get().enqueueAndReturn(packet);
        packet=null;
      }
 else {
        if (inBuffer.hasRemaining()) {
          if (DEBUG) {
            throw new RuntimeException("String_Node_Str" + inBuffer.remaining());
          }
        }
      }
    }
  }
 catch (  final Throwable t) {
    logger.log(Level.SEVERE,"String_Node_Str" + connection.getEndPoint(),t);
  }
 finally {
    registerOp(inSelector.selector,SelectionKey.OP_READ);
  }
}

Fixed version (ground truth):
public final void handle(){
  if (!connection.live())   return;
  try {
    final int readBytes=socketChannel.read(inBuffer);
    if (readBytes == -1) {
      connection.close();
      return;
    }
    if (readBytes <= 0) {
      return;
    }
  }
 catch (  final Exception e) {
    if (packet != null) {
      packet.returnToContainer();
      packet=null;
    }
    handleSocketException(e);
    return;
  }
  try {
    inBuffer.flip();
    while (true) {
      final int remaining=inBuffer.remaining();
      if (remaining <= 0) {
        inBuffer.clear();
        return;
      }
      if (packet == null) {
        if (remaining >= 12) {
          packet=obtainReadable();
          if (packet == null) {
            throw new RuntimeException("String_Node_Str" + connection.getEndPoint());
          }
        }
 else {
          inBuffer.compact();
          return;
        }
      }
      final boolean full=packet.read(inBuffer);
      if (full) {
        packet.flipBuffers();
        packet.read();
        packet.setFromConnection(connection);
        ClusterService.get().enqueueAndReturn(packet);
        packet=null;
      }
 else {
        if (inBuffer.hasRemaining()) {
          if (DEBUG) {
            throw new RuntimeException("String_Node_Str" + inBuffer.remaining());
          }
        }
      }
    }
  }
 catch (  final Throwable t) {
    logger.log(Level.SEVERE,"String_Node_Str" + connection.getEndPoint(),t);
  }
 finally {
    registerOp(inSelector.selector,SelectionKey.OP_READ);
  }
}