in provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransport.java [378:406]
protected void drainInbound() {
if (!getServiceState().isStarted() || readSource.isSuspended()) {
return;
}
try {
long initial = codec.getReadCounter();
// Only process up to 64k worth of data at a time, so we can give
// other connections a chance to process their requests.
while( codec.getReadCounter() - initial < 1024 * 64 ) {
Object command = codec.read();
if ( command!=null ) {
try {
listener.onTransportCommand(this, command);
} catch (Throwable e) {
onTransportFailure(new IOException("Transport listener failure."));
}
// the transport may be suspended after processing a command.
if (getServiceState().isStopped() || readSource.isSuspended()) {
return;
}
} else {
return;
}
}
} catch (IOException e) {
onTransportFailure(e);
}
}