Bug 89031 [Undo/Redo] IWorkbench#getOperationSupport() marked experimental
IWorkbench#getOperationSupport() marked experimental
bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java
listeners.remove(listener);
	}
	
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.core.commands.operations.IOperationHistory#replaceOperation(org.eclipse.core.commands.operations.IUndoableOperation, org.eclipse.core.commands.operations.IUndoableOperation [])
	 */
	public void replaceOperation(IUndoableOperation operation, IUndoableOperation [] replacements) {
		
		int index = undoList.indexOf(operation);
		if (index > -1) {
			undoList.remove(operation);
			internalRemove(operation);
			ArrayList allContexts = new ArrayList(replacements.length);
			for (int i=0; i<replacements.length; i++) {
				IUndoContext [] opContexts = replacements[i].getContexts();
				for (int j=0; j < opContexts.length; j++ ) {
					allContexts.add(opContexts[j]);
				}
				undoList.add(index, replacements[i]);
				notifyAdd(replacements[i]);
			}
			
			for (int i=0; i<allContexts.size(); i++) {
				IUndoContext context = (IUndoContext)allContexts.get(i);
				forceUndoLimit(context, getLimit(context));
			}