@Override
 protected void restoreSavedInfo(Object o) throws MisconfigurationException {
   synchronized (lock) {
     super.restoreSavedInfo(o);
     // when we do a load, we have to process the deltas that may exist
     if (deltaSaver.availableDeltas() > 0) {
       deltaSaver.processDeltas(this);
     }
   }
 }
 @Override
 public void removeInfoFromModule(String moduleName, boolean generateDelta) {
   synchronized (lock) {
     super.removeInfoFromModule(moduleName, generateDelta);
     if (generateDelta) {
       this.deltaSaver.addDeleteCommand(moduleName);
       checkDeltaSize();
     }
   }
 }
 protected void init() throws MisconfigurationException {
   super.init();
   deltaSaver = createDeltaSaver();
 }
 /** Whenever it's properly saved, clear all the deltas. */
 public void save() {
   synchronized (lock) {
     super.save();
     deltaSaver.clearAll();
   }
 }