title: How to stop an executor thread when Tomcat is stopped?
body: <p>I am using an executor service by creating a fixed number of threads to do a HTTP GET data retrieval.</p>
  
  <pre><code>executorService = ExecutorServiceFactory.getInstance().getExecutorService(Config.getInstance().getNumberOfThreads(), "ThreadExecutor_"+UIDFactory.getInstance().createSessionID());
  executorService.execute(new Retrieve(data));
  
  private class Retrieve implements Runnable{
      private Vector&lt;String&gt; data;
  
      public WADORetrieve(Vector&lt;String&gt; data) {          
              this.data = data;
      }
  
      @Override
      public void run() {
          for(int i=0;i&lt;data.length;i++){
              fetch(data[i]);
          }
      }
  }    
  </code></pre>
  
  <p>When Tomcat is stopped we get this error:</p>
  
  <blockquote>
    <p>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.</p>
  </blockquote>
  
  <p>Is this a real issue? What can I do to stop tomcat properly without these service errors.</p>