Hi, inside ClientCnxn.SendThread we have
final ByteBuffer lenBuffer = ByteBuffer.allocateDirect(4); ByteBuffer incomingBuffer = lenBuffer; So incomingBuffer and lenBuffer do refer to the same object. There are several other places where lenBuffer is again assigned to incomingBuffer. Now inside the doIO() method we got if (incomingBuffer == lenBuffer) { recvCount++; readLength(); } else if (!initialized) { incomingBuffer is never assigned anything else then lenBuffer, lenBuffer stays the same all the time. So as far as my knowledge of java reaches (which may not be too far) incomingBuffer == lenBuffer _always_ evaluates to true. Isn't that true? So effectively we've got dead code in the elseif and else branches, didn't we? Best regards, Thomas Koch, http://www.koch.ro