diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionRESTService.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionRESTService.java index 06c13dd18..203004b7a 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionRESTService.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connection/ConnectionRESTService.java @@ -309,9 +309,14 @@ public class ConnectionRESTService { existingConnection.setName(connection.getName()); connectionDirectory.update(existingConnection); - // Update connection parent + // Get old and new parents + String oldParentIdentifier = existingConnection.getParentIdentifier(); ConnectionGroup updatedParentGroup = retrievalService.retrieveConnectionGroup(userContext, connection.getParentIdentifier()); - connectionDirectory.move(connectionID, updatedParentGroup.getConnectionDirectory()); + + // Update connection parent, if changed + if ( (oldParentIdentifier != null && !oldParentIdentifier.equals(updatedParentGroup.getParentIdentifier())) + || (oldParentIdentifier == null && updatedParentGroup.getParentIdentifier() != null)) + connectionDirectory.move(connectionID, updatedParentGroup.getConnectionDirectory()); } diff --git a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupRESTService.java b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupRESTService.java index 028e71536..cb767167a 100644 --- a/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupRESTService.java +++ b/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/rest/connectiongroup/ConnectionGroupRESTService.java @@ -365,9 +365,14 @@ public class ConnectionGroupRESTService { existingConnectionGroup.setType(connectionGroup.getType()); connectionGroupDirectory.update(existingConnectionGroup); - // Update connection group parent + // Get old and new parents + String oldParentIdentifier = existingConnectionGroup.getParentIdentifier(); ConnectionGroup updatedParentGroup = retrievalService.retrieveConnectionGroup(userContext, connectionGroup.getParentIdentifier()); - connectionGroupDirectory.move(connectionGroupID, updatedParentGroup.getConnectionGroupDirectory()); + + // Update connection group parent, if changed + if ( (oldParentIdentifier != null && !oldParentIdentifier.equals(updatedParentGroup.getParentIdentifier())) + || (oldParentIdentifier == null && updatedParentGroup.getParentIdentifier() != null)) + connectionGroupDirectory.move(connectionGroupID, updatedParentGroup.getConnectionGroupDirectory()); }