@Override public void contextDestroyed(final ServletContextEvent sce) { final List<PriorityDisposable> disposables = new ArrayList<PriorityDisposable>(PriorityDisposableRegistry.getDisposables()); sort(disposables); for (final PriorityDisposable disposable : disposables) { disposable.dispose(); } executorService.shutdown(); unmanagedExecutorService.shutdown(); for (final FileSystemProvider fileSystemProvider : FileSystemProviders.installedProviders()) { if (fileSystemProvider instanceof Disposable) { ((Disposable) fileSystemProvider).dispose(); } } PriorityDisposableRegistry.clear(); }