private void handleReadable(TCPConnection conn) { logger.log(Level.FINEST, "handlereadable()..."); conn.makeSpaceInNetInBuffer(); ConnectionBuffers connection_buffers = conn.connection_buffers; logger.log( Level.FINEST, "pre: conn.in_buffer.position=" + connection_buffers.netInBuffer().position()); int count; try { int loop_count = 0; while ((count = conn.channel.read(connection_buffers.netInBuffer())) > 0 && loop_count++ < 3) { logger.log( Level.FINEST, "readloop: connection_buffers.netInBuffer().position=" + connection_buffers.netInBuffer().position()); conn.makeSpaceInNetInBuffer(); } } catch (java.io.IOException ex) { logger.log(Level.FINE, "got IOException", ex); closeConnection(conn); return; } conn.processNetInBuffer(); processInBuffer(conn); if (count < 0 && conn.state != Connection.State.closed) { logger.log(Level.FINE, "count<0"); closeConnection(conn); return; } }