if (client == null) client = SVNWorkspaceRoot.getSVNResourceFor(resources[i]).getRepository().getSVNClient();
			public void run() {				try {					ISVNClientAdapter client = SVNProviderPlugin.getPlugin().getSVNClientManager().createSVNClient();					for (int i = 0; i < resources.length; i++) {						final IResource resource = resources[i];						File checkFile = new File(destPath.getPath() + File.separator + resource.getName());						File srcPath = new File(resource.getLocation().toString());						File newDestPath = new File(destPath.getPath() + File.separator + resource.getName());						if (checkFile.exists()) {							IInputValidator inputValidator = new IInputValidator() {								public String isValid(String newText) {									if (newText.equals(resource.getName())) 										return Policy.bind("CopyAction.nameConflictSame"); //$NON-NLS-1$									return null;								}															};							InputDialog inputDialog = new InputDialog(getShell(), Policy.bind("CopyAction.nameConflictTitle"), Policy.bind("CopyAction.nameConflictMessage", resource.getName()), "Copy of " + resource.getName(), inputValidator); //$NON-NLS-1$							if (inputDialog.open() == InputDialog.CANCEL) return;							String newName = inputDialog.getValue();							if (newName == null  || newName.trim().length() == 0) return;							newDestPath = new File(destPath.getPath() + File.separator + newName);						}						if (project.getFullPath().isPrefixOf(path))							client.copy(srcPath, newDestPath);						else							client.doExport(srcPath, newDestPath, true);					}					targetProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());				} catch (Exception e) {					MessageDialog.openError(getShell(), Policy.bind("CopyAction.copy"), e.getMessage()); //$NON-NLS-1$				}			}			