Bug 89031 [Undo/Redo] IWorkbench#getOperationSupport() marked experimental
IWorkbench#getOperationSupport() marked experimental
bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
for (int i = 0; i < contexts.length; i++) {
			if (!hasContext(contexts[i])) {
				addContext(contexts[i]);
			}
		}
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.core.commands.operations.IUndoableOperation#remove(org.eclipse.core.commands.operations.IUndoableOperation)
	 */
	public void remove(IUndoableOperation operation) {
		if (operation == triggeringOperation) {
			triggeringOperation = null;
			history.replaceOperation(this, 
					(IUndoableOperation[])children.toArray(new IUndoableOperation[children.size()]));
		} else {
			children.remove(operation);
			operation.dispose();
			recomputeContexts();
		}
	}
	
	/**
	 * Remove the specified context from the receiver.  This method is typically invoked when
	 * the history is being flushed for a certain context.  In the case of triggered operations,
	 * if the context for the triggering operation is being removed, then the operation must be
	 * replaced with its atomic children.  
	 * 
	 * @param context - the undo context being removed from the receiver.