Bug 210115 [DataBinding] NPE when getter called on disposed observable
bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ObservableTracker.java
*/
	public static IObservable[] runAndMonitor(Runnable runnable,
			IChangeListener changeListener, IStaleListener staleListener) {
		
		Set lastObservableSet = (Set) currentObservableSet.get();
		IChangeListener lastChangeListener = (IChangeListener) currentChangeListener
				.get();
		IStaleListener lastStaleListener = (IStaleListener) currentStaleListener
				.get();
		Set observableSet = new HashSet();
		
		currentObservableSet.set(observableSet);
		currentChangeListener.set(changeListener);
		currentStaleListener.set(staleListener);
		try {
			runnable.run();
		} finally {
			
			
			currentObservableSet.set(lastObservableSet);
			currentChangeListener.set(lastChangeListener);
			currentStaleListener.set(lastStaleListener);
		}
		int i = 0;
		IObservable[] result = new IObservable[observableSet.size()];
		for (Iterator it = observableSet.iterator(); it.hasNext();) {
			IdentityWrapper wrapper = (IdentityWrapper) it.next();
			result[i++] = (IObservable) wrapper.unwrap();
		}
		return result;