@Override public void destroy(boolean initiator) { // Find and delete the appropriate extension Extension extensionToDelete = null; for (Extension extension : getDataRegion().getExtensionPoint().getExtensions()) { LuceneIndexCreation index = (LuceneIndexCreation) extension; if (index.getName().equals(indexName)) { extensionToDelete = extension; break; } } if (extensionToDelete != null) { getDataRegion().getExtensionPoint().removeExtension(extensionToDelete); } // Destroy the async event queue destroyAsyncEventQueue(initiator); // Close the repository manager repositoryManager.close(); RegionListener listenerToRemove = getRegionListener(); if (listenerToRemove != null) { cache.removeRegionListener(listenerToRemove); } // Remove cache service profile dataRegion .removeCacheServiceProfile(LuceneIndexCreationProfile.generateId(indexName, regionPath)); }