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