Bug 94400 [Undo] - After successful undo, should operation be disposed by framework if it cannot be redone?
bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java
public IUndoableOperation getUndoOperation(IUndoContext context) {
		Assert.isNotNull(context);
		synchronized (undoRedoHistoryKey) {
			for (int i = undoList.size() - 1; i >= 0; i--) {
				IUndoableOperation operation = (IUndoableOperation) undoList
						.get(i);
				if (operation.hasContext(context)) {
					return operation;
				}
			}
		}
		return null;
	}
	/*
	 * Remove the operation by disposing it and notifying listeners.
	 */
	private void internalRemove(IUndoableOperation operation) {
		operation.dispose();
		notifyRemoved(operation);
	}
	/*
	 * Notify listeners of an operation event.
	 */
	private void notifyListeners(OperationHistoryEvent event) {
		preNotifyOperation(event.getOperation(), event);
		
		
		
		final IOperationHistoryListener[] listenerArray = (IOperationHistoryListener[]) listeners
				.toArray(new IOperationHistoryListener[listeners.size()]);