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
* method should check conditions that can change over the life of the
	 * operation, such as the existence of the information needed to carry out
	 * the operation. 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.
	 * 
	 * @param allowOverwrite
	 *            a boolean that specifies whether resource creation should be
	 *            allowed to overwrite an existent resource.
	 */
	protected IStatus computeCreateStatus(boolean allowOverwrite) {
		if (resourceDescriptions == null || resourceDescriptions.length == 0) {
			markInvalid();
			return getErrorStatus(UndoMessages.AbstractResourcesOperation_NotEnoughInfo);
		}
		for (int i = 0; i < resourceDescriptions.length; i++) {
			
			if (resourceDescriptions[i] == null
					|| !resourceDescriptions[i].isValid()) {
				markInvalid();
				return getErrorStatus(UndoMessages.AbstractResourcesOperation_InvalidRestoreInfo);
			} else if (!allowOverwrite
					&& resourceDescriptions[i].verifyExistence(false)) {
				
				markInvalid();
				return getErrorStatus(UndoMessages.AbstractResourcesOperation_ResourcesAlreadyExist);
			}
		}
		return Status.OK_STATUS;