@Override
 protected void finalize() throws Throwable {
   adapterCleanupThread.stopCleaner();
   for (ResourceSet rs : resourceSets.keySet()) {
     if (rs != null && adapter != null) {
       rs.eAdapters().remove(adapter);
     }
   }
   super.finalize();
 }