From 9538eae666a0cccc8466ef6bd4209bad38382b77 Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Wed, 17 Dec 2008 14:54:55 +0000 Subject: [PATCH] Merged V3.0 to HEAD 11540: Fix for ETHREEOH-642: forms-runtime.js doesn't process multiple select boxes correctly 11541: Fix for occasional CIFS packet allocations that are over the maximum pooled packet size. The oversized packets are allocated from normal Java heap and will be picked up by the garbage collector. JLAN-42. 11542: Removed dynamic-website and extranet projects from 3.0E codeline 11543: Missing XML/HTML encoding in activity list feed. 11544: Fix for ETHREEOH-528 - removed Complete Repository as Export option. 11545: Updated NTLM example config in web.xml to include web-client ajax servlet mapping. 11546: Merged V2.2 to V3.0 11478: Keep creator and owner as orihinally set in AVM - Fix for ETWOTWO-604 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12454 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- source/java/org/alfresco/repo/avm/AVMNodeImpl.java | 8 ++++++++ source/java/org/alfresco/repo/avm/BasicAttributes.java | 2 +- source/java/org/alfresco/repo/avm/DeletedNodeImpl.java | 3 ++- .../org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java | 7 ++++++- .../java/org/alfresco/repo/avm/LayeredFileNodeImpl.java | 1 + .../org/alfresco/repo/avm/PlainDirectoryNodeImpl.java | 2 ++ source/java/org/alfresco/repo/avm/PlainFileNodeImpl.java | 1 + 7 files changed, 21 insertions(+), 3 deletions(-) diff --git a/source/java/org/alfresco/repo/avm/AVMNodeImpl.java b/source/java/org/alfresco/repo/avm/AVMNodeImpl.java index 50b8d26584..45516440f9 100644 --- a/source/java/org/alfresco/repo/avm/AVMNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/AVMNodeImpl.java @@ -366,6 +366,13 @@ public abstract class AVMNodeImpl implements AVMNode, Serializable fAspects = new HashSet(other.getAspects()); } + protected void copyCreationAndOwnerBasicAttributes(AVMNode other) + { + fBasicAttributes.setCreateDate(other.getBasicAttributes().getCreateDate()); + fBasicAttributes.setCreator(other.getBasicAttributes().getCreator()); + fBasicAttributes.setOwner(other.getBasicAttributes().getOwner()); + } + protected void copyACLs(AVMNode other, Long parentAcl, ACLCopyMode mode) { DbAccessControlList acl = other.getAcl(); @@ -384,6 +391,7 @@ public abstract class AVMNodeImpl implements AVMNode, Serializable copyAspects(other); copyACLs(other, parentAcl, ACLCopyMode.COPY); copyProperties(other); + copyCreationAndOwnerBasicAttributes(other); } /** diff --git a/source/java/org/alfresco/repo/avm/BasicAttributes.java b/source/java/org/alfresco/repo/avm/BasicAttributes.java index dbd1e81226..5336e97ecf 100644 --- a/source/java/org/alfresco/repo/avm/BasicAttributes.java +++ b/source/java/org/alfresco/repo/avm/BasicAttributes.java @@ -7,7 +7,7 @@ package org.alfresco.repo.avm; * Ownership, timestamps, later perhaps ACLs * @author britt */ -interface BasicAttributes +public interface BasicAttributes { /** * Set the creator of the node. diff --git a/source/java/org/alfresco/repo/avm/DeletedNodeImpl.java b/source/java/org/alfresco/repo/avm/DeletedNodeImpl.java index 0209f01eeb..1b7839e2ae 100644 --- a/source/java/org/alfresco/repo/avm/DeletedNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/DeletedNodeImpl.java @@ -67,7 +67,8 @@ public class DeletedNodeImpl extends AVMNodeImpl implements DeletedNode AVMDAOs.Instance().fAVMNodeDAO.flush(); copyProperties(other); copyAspects(other); - copyACLs(other, parentAcl, mode); + copyACLs(other, parentAcl, mode); + copyCreationAndOwnerBasicAttributes(other); } /** diff --git a/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java b/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java index b6cf33cc0e..0d1ad885cc 100644 --- a/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java @@ -116,6 +116,7 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec copyProperties(toCopy); copyACLs(toCopy, parentAcl, mode); copyAspects(toCopy); + copyCreationAndOwnerBasicAttributes(toCopy); } else { @@ -131,7 +132,7 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec } else { - // TODO: Will not pick up changes if we start with no permission on teh terget node - may need + // TODO: Will not pick up changes if we start with no permission on the target node - may need // to add setAcl(DbAccessControlListImpl.createLayeredAcl(null)); } @@ -186,6 +187,7 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec copyProperties(other); copyAspects(other); copyACLs(other, parentAcl, mode); + copyCreationAndOwnerBasicAttributes(other); } /** @@ -222,6 +224,7 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec copyProperties(other); copyAspects(other); copyACLs(other, parentAcl, mode); + copyCreationAndOwnerBasicAttributes(other); } /** @@ -258,6 +261,7 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec copyProperties(dir); copyAspects(dir); copyACLs(dir, inheritedAcl, mode); + copyCreationAndOwnerBasicAttributes(dir); } /** @@ -768,6 +772,7 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec AVMDAOs.Instance().fAVMNodeDAO.flush(); ghost.setAncestor(child); ghost.setDeletedType(child.getType()); + ghost.copyCreationAndOwnerBasicAttributes(child); this.putChild(name, ghost); } else diff --git a/source/java/org/alfresco/repo/avm/LayeredFileNodeImpl.java b/source/java/org/alfresco/repo/avm/LayeredFileNodeImpl.java index 01e8fe52c5..a48e6be5ea 100644 --- a/source/java/org/alfresco/repo/avm/LayeredFileNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/LayeredFileNodeImpl.java @@ -75,6 +75,7 @@ class LayeredFileNodeImpl extends FileNodeImpl implements LayeredFileNode copyProperties(other); copyAspects(other); copyACLs(other, parentAcl, mode); + copyCreationAndOwnerBasicAttributes(other); } /** diff --git a/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java b/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java index f0596f1e5b..073d41f872 100644 --- a/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java @@ -89,6 +89,7 @@ class PlainDirectoryNodeImpl extends DirectoryNodeImpl implements PlainDirectory copyProperties(other); copyAspects(other); copyACLs(other, parentAcl, mode); + copyCreationAndOwnerBasicAttributes(other); } /** @@ -277,6 +278,7 @@ class PlainDirectoryNodeImpl extends DirectoryNodeImpl implements PlainDirectory AVMDAOs.Instance().fAVMNodeDAO.flush(); ghost.setAncestor(child); ghost.setDeletedType(child.getType()); + ghost.copyCreationAndOwnerBasicAttributes(child); putChild(name, ghost); } else diff --git a/source/java/org/alfresco/repo/avm/PlainFileNodeImpl.java b/source/java/org/alfresco/repo/avm/PlainFileNodeImpl.java index 80a6fc9b7c..bef0408b1b 100644 --- a/source/java/org/alfresco/repo/avm/PlainFileNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/PlainFileNodeImpl.java @@ -103,6 +103,7 @@ class PlainFileNodeImpl extends FileNodeImpl implements PlainFileNode copyProperties(other); copyAspects(other); copyACLs(other, parentAcl, mode); + copyCreationAndOwnerBasicAttributes(other); } // TODO Is there a reason for passing all these parameters instead