diff --git a/rse/plugins/org.eclipse.rse.efs.ui/src/org/eclipse/rse/internal/efs/ui/CreateRemoteProjectActionDelegate.java b/rse/plugins/org.eclipse.rse.efs.ui/src/org/eclipse/rse/internal/efs/ui/CreateRemoteProjectActionDelegate.java
index 2c019105217..35fda597320 100644
--- a/rse/plugins/org.eclipse.rse.efs.ui/src/org/eclipse/rse/internal/efs/ui/CreateRemoteProjectActionDelegate.java
+++ b/rse/plugins/org.eclipse.rse.efs.ui/src/org/eclipse/rse/internal/efs/ui/CreateRemoteProjectActionDelegate.java
@@ -21,6 +21,7 @@
* - Also remove unnecessary class RSEFileCache and obsolete branding files.
* Martin Oberhuber (Wind River) - [168870] refactor org.eclipse.rse.core package of the UI plugin
* Martin Oberhuber (Wind River) - [188360] renamed from plugin org.eclipse.rse.eclipse.filesystem
+ * Remy Chi Jian Suen (Independent) - [192906][efs] No Error when trying to Create Remote Project when project with name exists
********************************************************************************/
package org.eclipse.rse.internal.efs.ui;
@@ -126,15 +127,17 @@ public class CreateRemoteProjectActionDelegate implements IActionDelegate {
* Creates a remote project.
*
* @param directory
- * the remote folder on which the EFS project should be locaed
+ * the remote folder on which the EFS project should be located
* @return true
if the copy operation completed, and
* false
if it was abandoned part way
*/
boolean performCreateRemoteProject(final IRemoteFile directory) {
IRunnableWithProgress op = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) {
+ public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
try {
createRemoteProject(directory, monitor);
+ } catch (InvocationTargetException e) {
+ throw e;
} catch (Exception e) {
if (e.getCause() instanceof CoreException) {
recordError((CoreException)e.getCause());
@@ -172,43 +175,38 @@ public class CreateRemoteProjectActionDelegate implements IActionDelegate {
// (Copyright 2000, 2006 IBM Corporation and others)
//----------------------------------------------------------------------------
- private IProject createRemoteProject(IRemoteFile directory, IProgressMonitor monitor)
+ private IProject createRemoteProject(IRemoteFile directory, IProgressMonitor monitor) throws InvocationTargetException
{
IWorkspaceRoot root = SystemBasePlugin.getWorkspaceRoot();
- IProject editProject = root.getProject(directory.getName());
+ String directoryName = directory.getName();
+ IProject editProject = root.getProject(directoryName);
- if ((editProject != null) && (editProject.exists()) && (editProject.isOpen()))
- {
- return editProject;
- }
-
- if (editProject == null) {
- return null;
- }
-
- try
- {
- IProjectDescription description = root.getWorkspace().newProjectDescription(directory.getName());
+ try {
+ //FIXME re-enable for 3.0 -- just allowing editProject.create() throw for now to avoid NLS change
+ //Should apply the patch from bug 192906 to Messages.java and messages.properties
+// if (editProject.exists())
+// {
+// throw new CoreException(new Status(IStatus.ERROR,
+// Activator.getDefault().getBundle().getSymbolicName(),
+// NLS.bind(Messages.CreateRemoteProjectActionDelegate_PROJECT_EXISTS, directoryName)));
+// }
+
+ IProjectDescription description = root.getWorkspace().newProjectDescription(directoryName);
String hostNameOrAddr = directory.getParentRemoteFileSubSystem().getHost().getHostName();
String absolutePath = directory.getAbsolutePath();
URI location = RSEFileSystem.getURIFor(hostNameOrAddr, absolutePath);
description.setLocationURI(location);
-
+
editProject.create(description, monitor);
editProject.open(monitor);
editProject.refreshLocal(IResource.DEPTH_ONE, monitor);
+ } catch (CoreException e) {
+ throw new InvocationTargetException(e);
}
- catch (CoreException e)
- {
- SystemBasePlugin.logError("Error creating temp project", e); //$NON-NLS-1$
- }
- catch (Exception e)
- {
- SystemBasePlugin.logError("Error creating temp project", e); //$NON-NLS-1$
- }
+
return editProject;
}