diff --git a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteConnectionChangeEvent.java b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteConnectionChangeEvent.java index 333e152c083..f73ca7343d4 100644 --- a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteConnectionChangeEvent.java +++ b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/core/RemoteConnectionChangeEvent.java @@ -34,7 +34,8 @@ public class RemoteConnectionChangeEvent { public static final int CONNECTION_ABORTED = 1 << 2; /** - * Event indicating that the connection name was changed. + * Event indicating that the connection name will be changed. It is sent prior to the name change taking place. + * The event passes an IRemoteConnectionWorkingCopy so that the original and new name can be used by the listener. */ public static final int CONNECTION_RENAMED = 1 << 3; diff --git a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionWorkingCopy.java b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionWorkingCopy.java index 98f1588da36..59fb0c46595 100644 --- a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionWorkingCopy.java +++ b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionWorkingCopy.java @@ -189,7 +189,7 @@ public class RemoteConnectionWorkingCopy implements IRemoteConnectionWorkingCopy */ @Override public void fireConnectionChangeEvent(int type) { - if (original != null) { + if (original != null && type != RemoteConnectionChangeEvent.CONNECTION_RENAMED) { original.fireConnectionChangeEvent(type); } else { RemoteConnectionChangeEvent event = new RemoteConnectionChangeEvent(this, type); @@ -273,7 +273,7 @@ public class RemoteConnectionWorkingCopy implements IRemoteConnectionWorkingCopy public IRemoteConnection save() throws RemoteConnectionException { if (newName != null && original != null) { // rename, delete the old one - original.fireConnectionChangeEvent(RemoteConnectionChangeEvent.CONNECTION_RENAMED); + fireConnectionChangeEvent(RemoteConnectionChangeEvent.CONNECTION_RENAMED); connectionType.removeConnection(original.getName()); original.rename(newName); }