Warning: session_start(): open(/var/lib/php/sessions/sess_i1f54kvg9dg9222ebjqlgb12di, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
static int cleanJavaXCache_msgInterval = 5000;
sbool cleanJavaXCache_verbose;
static int cleanJavaXCache_emptyDirs_retentionMinutes = 10;
static void cleanJavaXCache(int retentionHours, bool verbose) {
pcall {
retentionHours = max(1, retentionHours);
long now = now(), msgPrinted = now();
if (verbose)
System.out.println("Cleaning JavaX Cache (" + retentionHours + " hours retention time; cutoff time: " + (now-retentionHours*1000*60*60) + ")");
int fileDeletions = 0;
for (File javax : ll(new File(userHome(), ".javax"), javaxTempDir())) {
File[] files = javax.listFiles();
int scanned = 0, deleted = 0;
if (files != null) for (File dir : files) {
++scanned;
if (now() >= msgPrinted+cleanJavaXCache_msgInterval) {
print("Cleaning cache (" + scanned + "/" + n(files, "dir") + " scanned, " + deleted + " deleted)...");
msgPrinted = now();
}
if (dir.isDirectory() && isInteger(dir.getName())) pcall {
long time = Long.parseLong(dir.getName());
long seconds = (now - time) / 1000;
long minutes = seconds / 60;
int retentionMinutes = empty(listFiles(dir)) ? cleanJavaXCache_emptyDirs_retentionMinutes : retentionHours*60;
if (cleanJavaXCache_verbose)
print("Dir " + dir.getName() + " minutes: " + minutes + ", deleting? " + (minutes >= retentionMinutes));
if (minutes >= retentionMinutes) {
//System.out.println("Can delete " + dir.getAbsolutePath() + ", age: " + hours + " h");
fileDeletions += cleanJavaXCache_removeDir(dir, verbose);
++deleted;
}
}
}
}
if (verbose && fileDeletions != 0)
print("Cleaned cache. File deletions: " + fileDeletions);
}
}
static int cleanJavaXCache_removeDir(File dir, bool verbose) {
int fileDeletions = 0;
if (!containsOneOf(dir.getAbsolutePath(), ".javax", "JavaX-Caches")) // security check!
fail("WHAT ARE YOU DOING!? >> " + dir.getAbsolutePath());
File[] files = listFiles(dir);
if (cleanJavaXCache_verbose)
print("Have " + n(files, "file") + " in " + dir);
for ping (File f : files) {
if (f.isDirectory())
cleanJavaXCache_removeDir(f, verbose);
else {
if (verbose)
print("Deleting " + f.getAbsolutePath());
f.delete();
++fileDeletions;
}
}
dir.delete();
ret fileDeletions;
}