final protected void startQuery(final IChunkMessage<IBindingSet> msg){
  if (!controller)   throw new UnsupportedOperationException(ERR_NOT_CONTROLLER);
  if (msg == null)   throw new IllegalArgumentException();
  if (!queryId.equals(msg.getQueryId()))   throw new IllegalArgumentException();
  lock.lock();
  try {
    runState.startQuery(msg);
  }
 catch (  TimeoutException ex) {
    halt(ex);
  }
 finally {
    lock.unlock();
  }
}

final protected void startQuery ( final IChunkMessage < IBindingSet > msg ) { if ( ! controller ) throw new UnsupportedOperationException ( ERR_NOT_CONTROLLER ) ; if ( msg == null ) throw new IllegalArgumentException ( ) ; if ( ! queryId . equals ( msg . getQueryId ( ) ) ) throw new IllegalArgumentException ( ) ; lock . lock ( ) ; try { runState . startQuery ( msg ) ; } catch ( TimeoutException ex ) { halt ( ex ) ; } finally { lock . unlock ( ) ; } }
message provides notice that the query has started execution and will consume some specific number of binding set chunks .
