title: executorService.shutdownNow() doesn't stop the thread
body: <p>I have a scheduled Executor service setup like </p>
  
  <pre><code>class Test {
      private final ScheduledExecutorService executor;
      public Test() {
          executor = Executors.newSingleThreadScheduledExecutor((runnable) -&gt; {
              Thread thread = new Thread(runnable, this.getClass().getName());
              thread.setDaemon(true);
              return thread;
          });
          executor.scheduleWithFixedDelay(
              new TestRefreshTask(), 0, 50000, TimeUnit.MILLISECONDS
          );
      }
  
      private class TestRefreshTask implements Runnable {
          @Override
          public void run() {
              //refresh some data
              refreshdata();
          }
      }
  
      public void close() {
          executor.shutdown();
          try {
              if(!executor.awaitTermination(60, TimeUnit.SECONDS)) {
                  executor.shutdownNow();
                  executor.awaitTermination(60, TimeUnit.SECONDS));
              }
          } catch (InterruptedException e) {
              //Retry to dispose task
              executor.shutdownNow();
              Thread.currentThread().interrupt();
              throw new RuntimeException(e);
          }
      }
  }
  </code></pre>
  
  <p>To stop this thread I call the close method but often the thread doesn't stop. I am not sure what's wrong and if somehow I am supposed to handle the <code>InterruptedException</code> in my run() code. </p>