Bug 175181 NavigatorSaveablesServices NPEs on shutdown
The following exception was encountered on shutdown the applicaiton. It happend on Linux(SuSE Linux Enterprise 9, PatchLevel: 3). It's very similar to defect: 142785. !ENTRY org.eclipse.osgi 4 0 2006-05-19 11:21:38.993 !MESSAGE An unexpected runtime error has occurred. !STACK 0 java.lang.NullPointerException at org.eclipse.ui.internal.navigator.NavigatorSaveablesService.computeSaveables(NavigatorSaveablesService.java:216) at org.eclipse.ui.internal.navigator.NavigatorSaveablesService.recomputeSaveablesAndNotify(NavigatorSaveablesService.java:374) at org.eclipse.ui.internal.navigator.NavigatorSaveablesService.handleBundleStopped(NavigatorSaveablesService.java:457) at org.eclipse.ui.internal.navigator.NavigatorSaveablesService.bundleChanged(NavigatorSaveablesService.java:100) at org.eclipse.ui.internal.navigator.NavigatorPlugin$1.bundleChanged(NavigatorPlugin.java:35) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:1206) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:189) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:291) 11
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSaveablesService.java
saveablesProviders[i].dispose();
					}
				}
				removeInstance(NavigatorSaveablesService.this);
				contentService = null;
				currentSaveables = null;
				outsideListener = null;
				saveablesLifecycleListener = null;
				saveablesSource = null;
				viewer = null;
				saveablesProviders = null;
				disposeListener = null;
			}
		}
	};
	private Map inactivePluginsWithSaveablesProviders;
    /**
	 * a TreeMap (NavigatorContentDescriptor->SaveablesProvider) which uses
	 * ExtensionPriorityComparator.INSTANCE as its Comparator
	 */
	private Map saveablesProviderMap;
	/**
	 * Implementation note: This is not synchronized at the method level because it needs to
	 * synchronize on "instances" first, then on "this", to avoid potential deadlock.
	 * 
	 * @param saveablesSource
	 * @param viewer
	 * @param outsideListener
	 * 
	 */