From 59b2fbdefc7e0ad4830c80e3f70d4f839c731613 Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Tue, 26 Mar 2019 17:22:04 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science-ii.research-infrastructures.eu/gcube/branches/data-access/storagehub-webapp/1.0@178700 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../storagehub/services/ItemsCreator.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gcube/data/access/storagehub/services/ItemsCreator.java b/src/main/java/org/gcube/data/access/storagehub/services/ItemsCreator.java index 52dce9b..ee121e5 100644 --- a/src/main/java/org/gcube/data/access/storagehub/services/ItemsCreator.java +++ b/src/main/java/org/gcube/data/access/storagehub/services/ItemsCreator.java @@ -280,13 +280,23 @@ public class ItemsCreator { try { newNode = ses.getNode(org.gcube.common.storagehub.model.Paths.append(org.gcube.common.storagehub.model.Paths.getPath(destinationNode.getPath()), name).toPath()); authChecker.checkWriteAuthorizationControl(ses, newNode.getIdentifier(), false); - versionHandler.checkoutContentNode(newNode, ses); - log.trace("replacing content of class {}",item.getContent().getClass()); - item2Node.replaceContent(newNode,item, ItemAction.UPDATED); - accountingHandler.createFileUpdated(item.getTitle(), ses, newNode, false); + ses.getWorkspace().getLockManager().lock(newNode.getPath(), true, true, 0,login); + try { + versionHandler.checkoutContentNode(newNode, ses); + log.trace("replacing content of class {}",item.getContent().getClass()); + item2Node.replaceContent(newNode,item, ItemAction.UPDATED); + accountingHandler.createFileUpdated(item.getTitle(), ses, newNode, false); + }finally { + ses.getWorkspace().getLockManager().unlock(newNode.getPath()); + } }catch(PathNotFoundException pnf) { authChecker.checkWriteAuthorizationControl(ses, destinationNode.getIdentifier(), true); - newNode = item2Node.getNode(destinationNode, item); + ses.getWorkspace().getLockManager().lock(destinationNode.getPath(), false, true, 0,login); + try { + newNode = item2Node.getNode(destinationNode, item); + }finally { + ses.getWorkspace().getLockManager().unlock(destinationNode.getPath()); + } versionHandler.makeVersionableContent(newNode, ses); accountingHandler.createFolderAddObj(name, item.getClass().getSimpleName(), item.getContent().getMimeType(), ses, newNode, false); }