package com.sleepycat.je.cleaner;
public class Cleaner {
/**
* Adds the DB ID to the pending DB set if it is being deleted but deletion
* is not yet complete.
*/
void addPendingDB( DatabaseImpl db){
if (db != null && db.isDeleted() && !db.isDeleteFinished()) {
DatabaseId id=db.getId();
if (fileSelector.addPendingDB(id)) {
this.hook85(id);
}
}
}
protected void hook85( DatabaseId id){
}
protected boolean hook112( DatabaseImpl db, boolean c) throws DatabaseException {
c=c || db.isDeleted();
return original(db,c);
}
protected void hook113( DatabaseImpl db) throws DatabaseException {
addPendingDB(db);
original(db);
}
@MethodObject static class Cleaner_processPending {
void execute() throws DatabaseException {
original();
pendingDBs=_this.fileSelector.getPendingDBs();
if (pendingDBs != null) {
for (int i=0; i < pendingDBs.length; i+=1) {
dbId2=pendingDBs[i];
db2=dbMapTree.getDb(dbId2,_this.lockTimeout);
if (db2 == null || db2.isDeleteFinished()) {
_this.fileSelector.removePendingDB(dbId2);
}
}
}
}
}
}