How to stop an executor thread when Tomcat is stopped?

Viewed 8150

I am using an executor service by creating a fixed number of threads to do a HTTP GET data retrieval.

executorService = ExecutorServiceFactory.getInstance().getExecutorService(Config.getInstance().getNumberOfThreads(), "ThreadExecutor_"+UIDFactory.getInstance().createSessionID());
executorService.execute(new Retrieve(data));

private class Retrieve implements Runnable{
    private Vector<String> data;

    public WADORetrieve(Vector<String> data) {          
            this.data = data;
    }

    @Override
    public void run() {
        for(int i=0;i<data.length;i++){
            fetch(data[i]);
        }
    }
}    

When Tomcat is stopped we get this error:

SEVERE: The web application [/viewer] appears to have started a thread named [ThreadExecutor_5161616156] but has failed to stop it. This is very likely to create a memory leak.

Is this a real issue? What can I do to stop tomcat properly without these service errors.

1 Answers
Related