public void markForDeletion(File file) {
   TempFile tempFile = deleteMap.get(file.getPath());
   if (tempFile != null) {
     deleteQueue.remove(tempFile);
     deleteMap.remove(tempFile);
   } else {
     tempFile = new TempFile(file);
     deleteQueue.add(new TempFile(file));
     deleteMap.put(tempFile.getFile().getPath(), tempFile);
     file.deleteOnExit(); // just in case
   }
 }
 public void run() {
   Thread.currentThread().setName("deleteHelper");
   if (deleteQueue.size() > 0) {
     TempFile temp = deleteQueue.peek();
     if (temp != null && temp.getOld()) {
       logger.debug(
           "removing temporary file {tempfile='" + temp.getFile().getAbsolutePath() + "'}");
       deleteQueue.poll();
       deleteMap.remove(temp);
       try {
         temp.getFile().delete();
       } catch (Exception e) {
       }
     }
   }
 }