mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V4.1-BUG-FIX to HEAD
47526: ALF-13949: Copying folder which contains working copy doesn't work properly. - Correct recursive copy and FileFolderService copy to respect the working copy renaming behaviour from ETHREEOH-2762 - Fix researched by Alex Bykov 47563: Merged PATCHES/V4.1.4 to V4.1-BUG-FIX 47529: ALF-18207: Alfresco not starting with WQS module applied - Regression caused by change in surf constructor behaviour 47536: ALF-18249: Alfresco doesn't start with Kerberos or NTLM authentification - Authentication filters do not demarcate transactions - Precautionary fix to restore existing behaviour regressed by ALF-17979 - Don't try to use transactional caches if there is no transaction - Moving authentication filters to public PersonService would add necessary transaction demarcation, but may cause regressions due to permission evaluation 47565: Merged PATCHES/V4.1.4 to V4.1-BUG-FIX (RECORD ONLY) 47500: Merged V4.1-BUG-FIX to PATCHES/V4.1.4 47497: Fixed ALF-13679 "Cannot play a movie file in Preview, which has double byte characters in the file name" - Fix from previous commit where a typo sneaked in just before commit 47517: ALF-18243: Merged V4.1-BUG-FIX to PATCHES/V4.1.4 47508: Merged HEAD to BRANCHES/DEV/V4.1-BUG-FIX 47448: Optimize ApplicationScriptUtils.toJSON() - threadlocal cache for namespace resolution to avoid DD access, smarter retrieval of cm:person properties - 40% quicker or more in some cases Convert short qnames to long qnames in our templates to avoid DD access to resolve full qnames Optimize out N+1 queries from calling RatingService.getRating() unless the document has at least one Like (which is available in the rolled up property already present on the node) - up to 99% quicker when building "Likes" JSON structure...! Added new optimized method to FileFolderService to retrieve a cm:name based path 47484: Fix exception throw in FileFolderServiceImpl.getNameOnlyPath() to ensure only FileNotFoundException is thrown not RuntimeException to pass unit test. 47504: Performance improvements to retrieving lists of nodes and single nodes. - no longer perform N+1 queries to get thumbnails when retrieving nodes git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@47566 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -547,11 +547,17 @@ public class CopyServiceImpl implements CopyService
|
|||||||
{
|
{
|
||||||
ChildAssociationDefinition childAssocDef = (ChildAssociationDefinition) assocDef;
|
ChildAssociationDefinition childAssocDef = (ChildAssociationDefinition) assocDef;
|
||||||
if (dropName && !childAssocDef.getDuplicateChildNamesAllowed())
|
if (dropName && !childAssocDef.getDuplicateChildNamesAllowed())
|
||||||
|
{
|
||||||
|
// ALF-13949: A behaviour callback (e.g. WorkingCopyAspect) may already have generated a new name, so
|
||||||
|
// preserve the new name if it has changed
|
||||||
|
String newName = (String) targetNodeProperties.get(ContentModel.PROP_NAME);
|
||||||
|
if (newName != null && newName.equals(nodeService.getProperty(sourceNodeRef, ContentModel.PROP_NAME)))
|
||||||
{
|
{
|
||||||
// duplicate children are not allowed.
|
// duplicate children are not allowed.
|
||||||
targetNodeProperties.remove(ContentModel.PROP_NAME);
|
targetNodeProperties.remove(ContentModel.PROP_NAME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Lastly, make sure the the Node UUID is set correctly; after all, the contract
|
// Lastly, make sure the the Node UUID is set correctly; after all, the contract
|
||||||
// of the CopyDetails says that the targetNodeRef was already determined.
|
// of the CopyDetails says that the targetNodeRef was already determined.
|
||||||
|
@@ -1139,7 +1139,10 @@ public class FileFolderServiceImpl implements FileFolderService
|
|||||||
|
|
||||||
// Only update the name if it has changed
|
// Only update the name if it has changed
|
||||||
String currentName = (String)nodeService.getProperty(targetNodeRef, ContentModel.PROP_NAME);
|
String currentName = (String)nodeService.getProperty(targetNodeRef, ContentModel.PROP_NAME);
|
||||||
if (currentName.equals(newName) == false)
|
|
||||||
|
// ALF-13949: WorkingCopyAspect intentionally generates new names for all copies of working copies (which no
|
||||||
|
// longer have the working copy aspect) so leave these alone after copy
|
||||||
|
if (!currentName.equals(newName) && !nodeService.hasAspect(sourceNodeRef, ContentModel.ASPECT_WORKING_COPY))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@@ -797,7 +797,7 @@ public class AuthorityDAOImpl implements AuthorityDAO, NodeServicePolicies.Befor
|
|||||||
{
|
{
|
||||||
listAuthorities(null, name, authorities, true, true);
|
listAuthorities(null, name, authorities, true, true);
|
||||||
}
|
}
|
||||||
if(!TransactionalResourceHelper.getSet(DELETING_AUTHORITY_SET_RESOURCE).contains(name))
|
if(AlfrescoTransactionSupport.getTransactionId() != null && !TransactionalResourceHelper.getSet(DELETING_AUTHORITY_SET_RESOURCE).contains(name))
|
||||||
{
|
{
|
||||||
userAuthorityCache.put(name, Collections.unmodifiableSet(authorities));
|
userAuthorityCache.put(name, Collections.unmodifiableSet(authorities));
|
||||||
}
|
}
|
||||||
|
@@ -1715,7 +1715,7 @@ public class PersonServiceImpl extends TransactionListenerAdapter implements Per
|
|||||||
private void putToCache(String userName, Set<NodeRef> refs)
|
private void putToCache(String userName, Set<NodeRef> refs)
|
||||||
{
|
{
|
||||||
String key = userName.toLowerCase();
|
String key = userName.toLowerCase();
|
||||||
if(!TransactionalResourceHelper.getSet(DELETING_PERSON_SET_RESOURCE).contains(key))
|
if(AlfrescoTransactionSupport.getTransactionId() != null && TransactionalResourceHelper.getSet(DELETING_PERSON_SET_RESOURCE).contains(key))
|
||||||
{
|
{
|
||||||
this.personCache.put(key, refs);
|
this.personCache.put(key, refs);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user