@Override public void run() { RaftMessages.ReceivedInstantClusterIdAwareMessage<?> message = null; try { message = messageQueue.poll( 1, SECONDS ); } catch ( InterruptedException e ) { log.warn( "Not expecting to be interrupted.", e ); } if ( message != null ) { if ( messageQueue.isEmpty() ) { handler.handle( message ); } else { batch.clear(); batch.add( message ); drain( messageQueue, batch, maxBatch - 1 ); collateAndHandleBatch( batch ); } } }