mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Unfix AR-822 and defer to AR-1573.
The in-transaction work has to align with the work that will be done by the actual background archival, but node archival doesn't fully support all model constructs and associated behaviour. Instead of continuing to hack away at each issue that comes up, a complete archive rethink is in order. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6154 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -76,7 +76,6 @@ public class FileFolderServiceImpl implements FileFolderService
|
||||
"./*" +
|
||||
"[like(@cm:name, $cm:name, false)" +
|
||||
" and not (subtypeOf('" + ContentModel.TYPE_SYSTEM_FOLDER + "'))" +
|
||||
" and not (hasAspect('" + ContentModel.ASPECT_DELETED_NODE + "'))" +
|
||||
" and (subtypeOf('" + ContentModel.TYPE_FOLDER + "') or subtypeOf('" + ContentModel.TYPE_CONTENT + "')" +
|
||||
" or subtypeOf('" + ContentModel.TYPE_LINK + "'))]";
|
||||
|
||||
@@ -84,7 +83,6 @@ public class FileFolderServiceImpl implements FileFolderService
|
||||
private static final String LUCENE_QUERY_SHALLOW_ALL =
|
||||
"+PARENT:\"${cm:parent}\"" +
|
||||
"-TYPE:\"" + ContentModel.TYPE_SYSTEM_FOLDER + "\" " +
|
||||
"-ASPECT:\"" + ContentModel.ASPECT_DELETED_NODE + "\" " +
|
||||
"+(" +
|
||||
"TYPE:\"" + ContentModel.TYPE_CONTENT + "\" " +
|
||||
"TYPE:\"" + ContentModel.TYPE_FOLDER + "\" " +
|
||||
@@ -95,14 +93,12 @@ public class FileFolderServiceImpl implements FileFolderService
|
||||
private static final String LUCENE_QUERY_SHALLOW_FOLDERS =
|
||||
"+PARENT:\"${cm:parent}\"" +
|
||||
"-TYPE:\"" + ContentModel.TYPE_SYSTEM_FOLDER + "\" " +
|
||||
"-ASPECT:\"" + ContentModel.ASPECT_DELETED_NODE + "\" " +
|
||||
"+TYPE:\"" + ContentModel.TYPE_FOLDER + "\" ";
|
||||
|
||||
/** Shallow search for all files and folders */
|
||||
private static final String LUCENE_QUERY_SHALLOW_FILES =
|
||||
"+PARENT:\"${cm:parent}\"" +
|
||||
"-TYPE:\"" + ContentModel.TYPE_SYSTEM_FOLDER + "\" " +
|
||||
"-ASPECT:\"" + ContentModel.ASPECT_DELETED_NODE + "\" " +
|
||||
"+TYPE:\"" + ContentModel.TYPE_CONTENT + "\" ";
|
||||
|
||||
/** Deep search for files and folders with a name pattern */
|
||||
@@ -110,7 +106,6 @@ public class FileFolderServiceImpl implements FileFolderService
|
||||
".//*" +
|
||||
"[like(@cm:name, $cm:name, false)" +
|
||||
" and not (subtypeOf('" + ContentModel.TYPE_SYSTEM_FOLDER + "'))" +
|
||||
" and not (hasAspect('" + ContentModel.ASPECT_DELETED_NODE + "'))" +
|
||||
" and (subtypeOf('" + ContentModel.TYPE_FOLDER + "') or subtypeOf('" + ContentModel.TYPE_CONTENT + "')" +
|
||||
" or subtypeOf('" + ContentModel.TYPE_LINK + "'))]";
|
||||
|
||||
@@ -203,14 +198,11 @@ public class FileFolderServiceImpl implements FileFolderService
|
||||
List<FileInfo> results = new ArrayList<FileInfo>(nodeRefs.size());
|
||||
for (NodeRef nodeRef : nodeRefs)
|
||||
{
|
||||
// Ignore missing nodes
|
||||
if (!nodeService.exists(nodeRef))
|
||||
if (nodeService.exists(nodeRef))
|
||||
{
|
||||
continue;
|
||||
FileInfo fileInfo = toFileInfo(nodeRef, true);
|
||||
results.add(fileInfo);
|
||||
}
|
||||
// It's good
|
||||
FileInfo fileInfo = toFileInfo(nodeRef, true);
|
||||
results.add(fileInfo);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
@@ -332,10 +324,6 @@ public class FileFolderServiceImpl implements FileFolderService
|
||||
public NodeRef searchSimple(NodeRef contextNodeRef, String name)
|
||||
{
|
||||
NodeRef childNodeRef = nodeService.getChildByName(contextNodeRef, ContentModel.ASSOC_CONTAINS, name);
|
||||
if (childNodeRef != null && nodeService.hasAspect(childNodeRef, ContentModel.ASPECT_DELETED_NODE))
|
||||
{
|
||||
childNodeRef = null;
|
||||
}
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug(
|
||||
|
@@ -29,8 +29,7 @@ import junit.framework.TestCase;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.node.archive.NodeArchiveService;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
||||
import org.alfresco.repo.transaction.TransactionUtil;
|
||||
import org.alfresco.repo.transaction.TransactionUtil.TransactionWork;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.ml.ContentFilterLanguagesService;
|
||||
import org.alfresco.service.cmr.ml.EditionService;
|
||||
@@ -87,9 +86,9 @@ public abstract class AbstractMultilingualTestCases extends TestCase
|
||||
authenticationComponent.setCurrentUser("admin");
|
||||
|
||||
// Create a folder to work in
|
||||
TransactionWork<NodeRef> createFolderWork = new TransactionWork<NodeRef>()
|
||||
RetryingTransactionCallback<NodeRef> createFolderCallback = new RetryingTransactionCallback<NodeRef>()
|
||||
{
|
||||
public NodeRef doWork() throws Exception
|
||||
public NodeRef execute() throws Exception
|
||||
{
|
||||
StoreRef storeRef = new StoreRef(StoreRef.PROTOCOL_WORKSPACE, "SpacesStore");
|
||||
NodeRef rootNodeRef = nodeService.getRootNode(storeRef);
|
||||
@@ -103,7 +102,7 @@ public abstract class AbstractMultilingualTestCases extends TestCase
|
||||
return folderNodeRef;
|
||||
}
|
||||
};
|
||||
folderNodeRef = TransactionUtil.executeInUserTransaction(transactionService, createFolderWork);
|
||||
folderNodeRef = transactionService.getRetryingTransactionHelper().doInTransaction(createFolderCallback);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user