Пример #1
0
 protected void deleteOld(File file, long minTime, int depth, boolean delete) {
   if (file.isDirectory()) {
     for (File f : file.listFiles()) {
       deleteOld(f, minTime, depth + 1, delete);
     }
     if (depth > 0 && file.list().length == 0) {
       // empty directory
       file.delete();
     }
   } else if (file.isFile() && file.canWrite()) {
     long lastModified = file.lastModified();
     long length = file.length();
     if (lastModified == 0) {
       log.error("Cannot read last modified for file: " + file);
     } else if (lastModified < minTime) {
       status.sizeBinariesGC += length;
       status.numBinariesGC++;
       if (delete && !file.delete()) {
         log.warn("Cannot gc file: " + file);
       }
     } else {
       status.sizeBinaries += length;
       status.numBinaries++;
     }
   }
 }
Пример #2
0
 @Override
 public void stop(boolean delete) {
   if (startTime == 0) {
     throw new RuntimeException("Not started");
   }
   deleteOld(binaryManager.getStorageDir(), startTime - TIME_RESOLUTION, 0, delete);
   status.gcDuration = System.currentTimeMillis() - startTime;
   startTime = 0;
 }