Bug 220696 [Undo] When deleting files and externally moving files from navigator, we get an exception
Build ID: M20071023-1652 Steps To Reproduce: Delete files from navigator view. Copy files from another folder to workspace using an external shell like command on windows. Refresh workspace. Repeat More information: from time to time, you get this exception: An internal error occurred during: "Deleting resources". java.lang.ArrayIndexOutOfBoundsException: 2 at org.eclipse.ui.ide.undo.AbstractResourcesOperation.setTargetResources(AbstractResourcesOperation.java:323) at org.eclipse.ui.ide.undo.AbstractResourcesOperation.<init>(AbstractResourcesOperation.java:71) at org.eclipse.ui.ide.undo.DeleteResourcesOperation.<init>(DeleteResourcesOperation.java:53) at org.eclipse.ui.actions.DeleteResourceAction$4.run(DeleteResourceAction.java:503) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/AbstractResourcesOperation.java
}
	/**
	 * Compute the status for deleting resources. A status severity of
	 * <code>OK</code> indicates that the delete is likely to be successful. A
	 * status severity of <code>ERROR</code> indicates that the operation is
	 * no longer valid. Other status severities are open to interpretation by
	 * the caller.
	 * 
	 * Note this method may be called on initial deletion of a resource, or when
	 * a create or delete operation is being undone or redone. Therefore, this
	 * method should check conditions that can change over the life of the
	 * operation, such as the existence of the resources to be deleted. One-time
	 * static checks should typically be done by the caller (such as the action
	 * that creates the operation) so that the user is not continually prompted
	 * or warned about conditions that were acceptable at the time of original
	 * execution.
	 */
	protected IStatus computeDeleteStatus() {
		if (resources == null || resources.length == 0) {
			markInvalid();
			return getErrorStatus(UndoMessages.AbstractResourcesOperation_NotEnoughInfo);
		}
		if (!resourcesExist()) {
			markInvalid();
			return getErrorStatus(UndoMessages.AbstractResourcesOperation_ResourcesDoNotExist);
		}
		return checkReadOnlyResources(resources);
	}
	/**
	 * Check the specified resources for read only state, and return a status