diff --git a/processes-services/src/main/java/org/exoplatform/processes/service/ProcessesAttachmentServiceImpl.java b/processes-services/src/main/java/org/exoplatform/processes/service/ProcessesAttachmentServiceImpl.java index 43b2e7129..39b90d75d 100644 --- a/processes-services/src/main/java/org/exoplatform/processes/service/ProcessesAttachmentServiceImpl.java +++ b/processes-services/src/main/java/org/exoplatform/processes/service/ProcessesAttachmentServiceImpl.java @@ -209,14 +209,16 @@ private void moveOrCopyAttachmentsJcrNodes(List attachments, String destPath = destNode.getPath().concat("/").concat(attachmentNode.getName()); if (!copy && !attachment.isEXoDrive()) { Node sourceEntityIdNode = attachmentNode.getParent(); - session.move(attachmentNode.getPath(), destPath); - attachmentNode = (Node) session.getItem(destPath); - attachmentNode.addMixin(NodetypeConstant.EXO_HIDDENABLE); + session.save(); + Workspace workspace = session.getWorkspace(); + workspace.move(attachmentNode.getPath(), destPath); + Node copyNode = (Node) session.getItem(destPath); + copyNode.addMixin(NodetypeConstant.EXO_HIDDENABLE); if (attachments.size() - 1 == index && sourceEntityIdNode != null && sourceEntityIdNode.getPrimaryNodeType().isNodeType(NodetypeConstant.NT_FOLDER)) { sourceEntityIdNode.remove(); } - session.save(); + copyNode.save(); } else { session.save(); Workspace workspace = session.getWorkspace(); diff --git a/processes-services/src/test/java/org/exoplatform/processes/service/ProcessesAttachmentServiceImplTest.java b/processes-services/src/test/java/org/exoplatform/processes/service/ProcessesAttachmentServiceImplTest.java index 0853afbd8..e83a12909 100644 --- a/processes-services/src/test/java/org/exoplatform/processes/service/ProcessesAttachmentServiceImplTest.java +++ b/processes-services/src/test/java/org/exoplatform/processes/service/ProcessesAttachmentServiceImplTest.java @@ -142,8 +142,10 @@ public void moveAttachmentsToEntity() throws Exception { List attachmentList = new ArrayList<>(); Attachment attachment = new Attachment(); attachment.setId("1"); + Workspace workspace = mock(Workspace.class); Session session = mock(Session.class); Node node = mock(Node.class); + when(session.getWorkspace()).thenReturn(workspace); ExtendedNode extendedNode = mock(ExtendedNode.class); ProjectDto projectDto = new ProjectDto(); projectDto.setId(1L); @@ -189,7 +191,7 @@ public void moveAttachmentsToEntity() throws Exception { when(extendedNode.getPath()).thenReturn("destPath"); when(node.getParent()).thenReturn(node); processesAttachmentService.moveAttachmentsToEntity(1L, 1L, "workflow", 1L, "workdraft", 1L); - verify(session, times(1)).move("srcPath", "destPath/test"); + verify(workspace, times(1)).move("srcPath", "destPath/test"); }