|
|
|
@ -157,6 +157,21 @@ public final class plasmaHTCache {
|
|
|
|
|
responseHeaderDB.set(urlHash, responseHeader);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private boolean deleteFile(File file) {
|
|
|
|
|
if (file.exists()) {
|
|
|
|
|
long size = file.length();
|
|
|
|
|
if (file.delete()) {
|
|
|
|
|
currCacheSize -= size;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean deleteFile(URL url) {
|
|
|
|
|
return deleteURLfromCache(url, "FROM");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean writeFile(URL url, byte[] array) {
|
|
|
|
|
if (array == null) return false;
|
|
|
|
|
File file = getCachePath(url);
|
|
|
|
@ -188,18 +203,6 @@ public final class plasmaHTCache {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
private boolean deleteFile(File file) {
|
|
|
|
|
if (file.exists()) {
|
|
|
|
|
long size = file.length();
|
|
|
|
|
if (file.delete()) {
|
|
|
|
|
currCacheSize -= size;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private boolean deleteFileandDirs (File f, String msg) {
|
|
|
|
|
if (deleteFile (f)) {
|
|
|
|
|
log.logInfo("DELETED " + msg + " CACHE : " + f.toString());
|
|
|
|
@ -215,7 +218,7 @@ public final class plasmaHTCache {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean deleteURLfromCache (URL url, String msg) {
|
|
|
|
|
if (deleteFileandDirs(getCachePath(url), msg)) {
|
|
|
|
|
try {
|
|
|
|
@ -230,9 +233,10 @@ public final class plasmaHTCache {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void cleanupDoIt(long newCacheSize) {
|
|
|
|
|
File f;
|
|
|
|
|
while ((currCacheSize >= newCacheSize) && (cacheAge.size() > 0)) {
|
|
|
|
|
while (currCacheSize >= newCacheSize && cacheAge.size() > 0) {
|
|
|
|
|
f = (File) cacheAge.remove(cacheAge.firstKey());
|
|
|
|
|
if (f != null) {
|
|
|
|
|
log.logFinest("Trying to delete old file: " + f.toString());
|
|
|
|
@ -250,52 +254,11 @@ public final class plasmaHTCache {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
private boolean deleteFile(File file) {
|
|
|
|
|
long size = file.length();
|
|
|
|
|
if (file.exists()) {
|
|
|
|
|
currCacheSize -= size;
|
|
|
|
|
return file.delete();
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean deleteFile(URL url) {
|
|
|
|
|
return deleteFile(getCachePath(url));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void cleanupCache(long newCacheSize) {
|
|
|
|
|
File object;
|
|
|
|
|
long size;
|
|
|
|
|
while (currCacheSize > maxCacheSize && cacheAge.size() > 0) {
|
|
|
|
|
object = (File) cacheAge.remove(cacheAge.firstKey());
|
|
|
|
|
if (object != null) {
|
|
|
|
|
size = object.length();
|
|
|
|
|
if (object.isFile() && object.delete()) {
|
|
|
|
|
currCacheSize -= size;
|
|
|
|
|
log.logInfo("DELETED OLD CACHE: " + object.toString());
|
|
|
|
|
object = object.getParentFile();
|
|
|
|
|
if (object.isDirectory() && object.list().length == 0) {
|
|
|
|
|
if (object.delete()) {
|
|
|
|
|
try {
|
|
|
|
|
log.logInfo("DELETED EMPTY DIRECTORY: " + object.toString());
|
|
|
|
|
responseHeaderDB.remove(plasmaURL.urlHash(getURL(cachePath , object)));
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
log.logWarning("HTCACHE: IOExeption removing response header from DB: " + e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void cleanup() {
|
|
|
|
|
// clean up cache to have 4% (enough) space for next entries
|
|
|
|
|
if ((currCacheSize >= maxCacheSize) && (cacheAge.size() > 0)) {
|
|
|
|
|
if (maxCacheSize > 0) cleanupCache(maxCacheSize - ((maxCacheSize / 100) * 4));
|
|
|
|
|
if (maxCacheSize > 0) cleanupDoIt(maxCacheSize - ((maxCacheSize / 100) * 4));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|