synchronized void start(JobTicket ticket) { if ( threadPool != null ) { logger.warn("startJob called more than once"); return; } if ( getBatchSize() <= 0 ) { withBatchSize(1); logger.warn("batchSize should be 1 or greater--setting batchSize to 1"); } jobTicket = ticket; initialize(); for (QueryBatchListener urisReadyListener : urisReadyListeners) { urisReadyListener.initializeListener(this); } jobStartTime = Calendar.getInstance(); started.set(true); if ( query != null ) { startQuerying(); } else { startIterating(); } }