/** {@inheritDoc} */ @Override @PauseBefore public Future<IdentificationResultCollection> submit(final IdentificationRequest request) { jobCounter.increment(); requests.add(request); // old code blocking identification: Callable<IdentificationResultCollection> callable = new Callable<IdentificationResultCollection>() { @Override public IdentificationResultCollection call() throws IOException { droidCore.setMaxBytesToScan(maxBytesToScan); IdentificationResultCollection results = droidCore.matchBinarySignatures(request); return results; } }; FutureTask<IdentificationResultCollection> task = new SubmissionFutureTask(callable, request); executorService.submit(task); return task; }