Merged V2.1 to HEAD

6609: Portlet UI (doclist, myspaces, mytasks) updates following design review
   6610: AR-1270
   6611: debugging WCM-778.
   6612: Improved API documentation.
   6613: Added store lookup cache to EHCache config for default and extended cluster sample
   6614: AWC-1531 and AWC-1146. Link objects that have targets which the user does not have access to are now filtered from the view.
   6615: AR-1664: Bootstraping from full export fails if file names differs only with a space: my file, my file
   6616: Fixed AR-1519: Possible duplicate entries when moving nodes between stores
   6617: Removed deprecated aspects; Added emailed aspect to messages; Added OOo command line options
   6618: Fix for AWC-1350
   6619: Fix for AWC-1509
   6620: AWC-1179: Searching for users in Invite User Wizard is slow with large number of users
   6621: Changed shutdown logic to avoid classloader cleanup race.
   6622: Fix for AWC-1533 (can't save office docs to Company Home)
   6623: Fix for AR-1705
   6624: Better fix for AWC-1256 (links generated by tinyMCE editor)
   6625: Fixed AR-1713: Transformers that do nothing don't break full text indexing
   6626: Fixed AWC-1438: Added explcit TXT to PDF converter that wraps the PDFBox TextToPDF class
   6627: Portlet templates now handle missing description property on web form
   6628: Fix WCM-788
   6635: Make workflow available for users who cannot see company home
         Resolved conflicted state of 'root\projects\repository\source\java\org\alfresco\repo\workflow\jbpm\JBPMEngine.java'


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6748 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-09-11 03:39:41 +00:00
parent f443bd467d
commit f4f0f51a7d
21 changed files with 1362 additions and 701 deletions

View File

@@ -39,7 +39,6 @@ import org.alfresco.repo.node.StoreArchiveMap;
import org.alfresco.repo.node.archive.RestoreNodeReport.RestoreStatus;
import org.alfresco.repo.node.integrity.IntegrityChecker;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.repository.AssociationRef;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
@@ -622,8 +621,6 @@ public class ArchiveAndRestoreTest extends TestCase
*/
public void testPermissionsForRestore() throws Exception
{
// user A deletes 'a'
authenticationService.authenticate(USER_A, USER_A.toCharArray());
nodeService.deleteNode(a);
@@ -653,4 +650,53 @@ public class ArchiveAndRestoreTest extends TestCase
RestoreNodeReport report = nodeArchiveService.restoreArchivedNode(b_);
assertEquals("Expected permission denied status", RestoreStatus.FAILURE_PERMISSION, report.getStatus());
}
/**
* Check that the existence of the node in the archive store doesn't prevent archival.
* It is possible to restore a node to the SpacesStore from some other source. When
* that node is archived, the currently archived node must be overwritten.
* @throws Exception
*/
public void testAR1519ArchiveCleansDuplicateUuid() throws Exception
{
// Delete the child node
nodeService.deleteNode(b);
verifyNodeExistence(b_, true);
// Delete the original parent node
nodeService.deleteNode(a);
verifyNodeExistence(a_, true);
// Now recreate a and b (they have been separated in the archive store)
Map<QName, Serializable> props = new HashMap<QName, Serializable>(1);
props.put(ContentModel.PROP_NODE_UUID, a.getId());
NodeRef aRecreated = nodeService.createNode(
workStoreRootNodeRef,
ContentModel.ASSOC_CHILDREN,
ContentModel.ASSOC_CHILDREN,
ContentModel.TYPE_CONTENT,
props).getChildRef();
assertEquals("NodeRef for recreated node should be the same as the original", a, aRecreated);
props.put(ContentModel.PROP_NODE_UUID, b.getId());
NodeRef bRecreated = nodeService.createNode(
a,
ContentModel.ASSOC_CHILDREN,
ContentModel.ASSOC_CHILDREN,
ContentModel.TYPE_CONTENT,
props).getChildRef();
assertEquals("NodeRef for recreated node should be the same as the original", b, bRecreated);
// Check existence
verifyNodeExistence(a, true);
verifyNodeExistence(b, true);
verifyNodeExistence(a_, true);
verifyNodeExistence(b_, true);
// Now check that the parent a can be deleted and the conflict is handled
nodeService.deleteNode(a);
// Check existence
verifyNodeExistence(a, false);
verifyNodeExistence(b, false);
verifyNodeExistence(a_, true);
verifyNodeExistence(b_, true);
}
}