Index: lams_central/web/includes/javascript/authoring/authoringGeneral.js =================================================================== diff -u -r6dcdc31ee601bf462443a795ba7f74b0eb7a4155 -rfbd45ce4871740f0c5b4e6e5eb075c5aec2f0a0f --- lams_central/web/includes/javascript/authoring/authoringGeneral.js (.../authoringGeneral.js) (revision 6dcdc31ee601bf462443a795ba7f74b0eb7a4155) +++ lams_central/web/includes/javascript/authoring/authoringGeneral.js (.../authoringGeneral.js) (revision fbd45ce4871740f0c5b4e6e5eb075c5aec2f0a0f) @@ -405,7 +405,7 @@ } if (copiedResource.isCut) { - var parent = tree.treeview('getParent', ldNode); + var parent = ldNode; while (parent && parent.nodeId) { if (parent.nodeId == copiedResource.resourceNode.nodeId) { alert(LABELS.FOLDER_MOVE_TO_CHILD_ERROR); Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/WorkspaceFolder.java =================================================================== diff -u -r1ee503e3d0e0228ea8a45025fddf15d9623c0377 -rfbd45ce4871740f0c5b4e6e5eb075c5aec2f0a0f --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/WorkspaceFolder.java (.../WorkspaceFolder.java) (revision 1ee503e3d0e0228ea8a45025fddf15d9623c0377) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/WorkspaceFolder.java (.../WorkspaceFolder.java) (revision fbd45ce4871740f0c5b4e6e5eb075c5aec2f0a0f) @@ -84,10 +84,10 @@ private WorkspaceFolder parentWorkspaceFolder; @OneToMany(mappedBy = "parentWorkspaceFolder") - private Set childWorkspaceFolders = new HashSet(); + private Set childWorkspaceFolders = new HashSet<>(); @OneToMany(mappedBy = "workspaceFolder") - private Set learningDesigns = new HashSet(); + private Set learningDesigns = new HashSet<>(); /** * non-nullable persistent field indicating the @@ -119,7 +119,7 @@ * folder. As of now it represents only Files. */ @OneToMany(mappedBy = "workspaceFolder", cascade = CascadeType.REMOVE) - private Set folderContent = new HashSet(); + private Set folderContent = new HashSet<>(); public WorkspaceFolder(String name, Integer userID, Date creationDate, Date lastModifiedDate, Integer workspaceFolderType) { @@ -189,6 +189,10 @@ } public void setParentWorkspaceFolder(WorkspaceFolder parentWorkspaceFolder) { + if (parentWorkspaceFolder != null + && parentWorkspaceFolder.getWorkspaceFolderId().equals(this.getWorkspaceFolderId())) { + throw new IllegalArgumentException("Workspace folder must not be its own parent"); + } this.parentWorkspaceFolder = parentWorkspaceFolder; }