Merged 5.0.N (5.0.4) to 5.1.N (5.1.1) (PARTIAL MERGE)

123349 cturlica: Merged V4.2-BUG-FIX (4.2.7) to 5.0.N (5.0.4)
      123109 adragoi: Merged DEV to V4.2-BUG-FIX (4.2.7)
         123105 adragoi: MNT-15705 : CLONE - Receiving error when bulk deleting content in Share
            - created remove overloaded method in script node that uses a new transaction and used it for bulk delete


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.1.N/root@123431 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ancuta Morarasu
2016-03-10 13:13:34 +00:00
parent 7d96b3c966
commit 80aa1b0ba3

View File

@@ -65,6 +65,8 @@ import org.alfresco.repo.thumbnail.ThumbnailHelper;
import org.alfresco.repo.thumbnail.ThumbnailRegistry;
import org.alfresco.repo.thumbnail.script.ScriptThumbnail;
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.repo.version.VersionModel;
import org.alfresco.repo.workflow.jscript.JscriptWorkflowInstance;
import org.alfresco.scripts.ScriptException;
@@ -195,6 +197,7 @@ public class ScriptNode implements Scopeable, NamespacePrefixResolverProvider
protected ServiceRegistry services = null;
private NodeService nodeService = null;
private FileFolderService fileFolderService = null;
private RetryingTransactionHelper retryingTransactionHelper = null;
private Boolean isDocument = null;
private Boolean isContainer = null;
private Boolean isLinkToDocument = null;
@@ -261,6 +264,7 @@ public class ScriptNode implements Scopeable, NamespacePrefixResolverProvider
this.services = services;
this.nodeService = services.getNodeService();
this.fileFolderService = services.getFileFolderService();
this.retryingTransactionHelper = services.getTransactionService().getRetryingTransactionHelper();
this.scope = scope;
}
@@ -2029,18 +2033,41 @@ public class ScriptNode implements Scopeable, NamespacePrefixResolverProvider
}
/**
* Remove this node. Any references to this Node or its NodeRef should be discarded!
* Remove this node. Any references to this Node or its NodeRef should be
* discarded!
*
* Beware: Any unsaved property changes will be lost when this is called. To
* preserve property changes call {@link save()} first.
*
* Beware: Any unsaved property changes will be lost when this is called. To preserve property changes call {@link #save()} first.
*
*/
public boolean remove()
{
return remove(false);
}
/**
* Remove this node in a new transaction or not as specified.
* Any references to this Node or its NodeRef should be discarded!
*
* Beware: Any unsaved property changes will be lost when this is called. To
* preserve property changes call {@link save()} first.
*
*/
public boolean remove(boolean newTransaction)
{
boolean success = false;
if (nodeService.exists(this.nodeRef))
{
this.nodeService.deleteNode(this.nodeRef);
retryingTransactionHelper.doInTransaction(new RetryingTransactionCallback<Void>()
{
@Override
public Void execute() throws Throwable
{
nodeService.deleteNode(nodeRef);
return null;
}
}, false, newTransaction);
success = true;
}