mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Merged V2.1 to HEAD:
6556: AVM performance tweaks 6557: WCM-758. 6558: Fixes WCM-753. 6559: better handling of rename, copy and paste for form instance data and renditions. addresses WCM-752 and partially addresses WCM-559. 6560: Renamed JndiTest.java until we decide to keep it or not. 6561: Oops. 6562: probable fix WCM-669 6563: Build fix after the removal of flushing suport 6564: Fix for WCM-728 6566: Support for avm index clustering via tracking - WCM-762 6567: Test fix after flush changes 6568: Fixed AWC-1517: Can now create space based on existing top-level space 6569: misc IE fixes. 6570: Various changes to improve AVM import performance and submit performance. 6571: Session flushing is now deprecated and doesn't fail with an exception. 6572: Reduced the iteration count to stress nextResults calls a bit more 6573: WS query sessions put back into cache after more results have been fetched. 6574: AR-1347: RepositoryServiceSoapBindingStub.queryAssociated() returns nothing when direction=target 6575: Fixed AR-1680: XPath metadata extraction now handles Node, NodeList and String return values 6577: Fix for AWC-1518 (User Homes renaming issue, and unreported issue with client config overriding of users home location) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6745 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -35,6 +35,7 @@ import org.alfresco.service.cmr.avm.AVMException;
|
||||
import org.alfresco.service.cmr.avm.AVMExistsException;
|
||||
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
|
||||
import org.alfresco.service.cmr.avm.AVMNotFoundException;
|
||||
import org.alfresco.util.Pair;
|
||||
|
||||
/**
|
||||
* A layered directory node. A layered directory node points at
|
||||
@@ -507,7 +508,7 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
|
||||
* @return The child or null if not found.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public AVMNode lookupChild(Lookup lPath, String name, boolean includeDeleted)
|
||||
public Pair<AVMNode, Boolean> lookupChild(Lookup lPath, String name, boolean includeDeleted)
|
||||
{
|
||||
ChildKey key = new ChildKey(this, name);
|
||||
ChildEntry entry = AVMDAOs.Instance().fChildEntryDAO.get(key);
|
||||
@@ -517,7 +518,7 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return AVMNodeUnwrapper.Unwrap(entry.getChild());
|
||||
return new Pair<AVMNode, Boolean>(AVMNodeUnwrapper.Unwrap(entry.getChild()), true);
|
||||
}
|
||||
// Don't check our underlying directory if we are opaque.
|
||||
if (fOpacity)
|
||||
@@ -529,7 +530,11 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
|
||||
if (lookup != null)
|
||||
{
|
||||
DirectoryNode dir = (DirectoryNode)lookup.getCurrentNode();
|
||||
AVMNode retVal = dir.lookupChild(lookup, name, includeDeleted);
|
||||
Pair<AVMNode, Boolean> retVal = dir.lookupChild(lookup, name, includeDeleted);
|
||||
if (retVal != null)
|
||||
{
|
||||
retVal.setSecond(false);
|
||||
}
|
||||
lPath.setFinalStore(lookup.getFinalStore());
|
||||
return retVal;
|
||||
}
|
||||
@@ -573,12 +578,12 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
|
||||
if (lookup != null)
|
||||
{
|
||||
DirectoryNode dir = (DirectoryNode)lookup.getCurrentNode();
|
||||
AVMNode child = dir.lookupChild(lookup, name, includeDeleted);
|
||||
Pair<AVMNode, Boolean> child = dir.lookupChild(lookup, name, includeDeleted);
|
||||
if (child == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return child.getDescriptor(lookup);
|
||||
return child.getFirst().getDescriptor(lookup);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -613,7 +618,15 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
|
||||
}
|
||||
else
|
||||
{
|
||||
child = lookupChild(lPath, name, false);
|
||||
Pair<AVMNode, Boolean> temp = lookupChild(lPath, name, false);
|
||||
if (temp == null)
|
||||
{
|
||||
child = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
child = temp.getFirst();
|
||||
}
|
||||
indirect = true;
|
||||
}
|
||||
if (child != null && (indirect || child.getStoreNew() == null || child.getAncestor() != null))
|
||||
@@ -893,7 +906,8 @@ class LayeredDirectoryNodeImpl extends DirectoryNodeImpl implements LayeredDirec
|
||||
throw new AVMBadArgumentException("Non primary layered directories cannot be linked.");
|
||||
}
|
||||
// Look for an existing child of that name.
|
||||
AVMNode existing = lookupChild(lPath, name, true);
|
||||
Pair<AVMNode, Boolean> temp = lookupChild(lPath, name, true);
|
||||
AVMNode existing = (temp == null) ? null : temp.getFirst();
|
||||
ChildKey key = new ChildKey(this, name);
|
||||
if (existing != null)
|
||||
{
|
||||
|
Reference in New Issue
Block a user