mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ACE-1640: Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud)
70016: Merged V4.2-BUG-FIX (4.2.3) to HEAD-BUG-FIX (4.3/Cloud) 70015: Merged V4.1-BUG-FIX (4.1.9) to V4.2-BUG-FIX (4.2.3) 70014: MNT-11437: Merged V4.1.5 (4.1.5.14) to V4.1-BUG-FIX (4.1.9) 70009: Revised fix for MNT-11107 Documents uploaded by another user are not filtered via tags in My Files Fix for MNT-11427 Impossible to start reindex process for bm-0010 and bm-0013 tests: api/solr/aclchangesets return status:502 - test fixes and maintain order git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@70017 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -69,4 +69,66 @@ public class AclEntity implements Acl
|
||||
{
|
||||
this.inheritedId = inheritedId;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see java.lang.Object#hashCode()
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((aclChangeSetId == null) ? 0 : aclChangeSetId.hashCode());
|
||||
result = prime * result + ((id == null) ? 0 : id.hashCode());
|
||||
result = prime * result + ((inheritedId == null) ? 0 : inheritedId.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see java.lang.Object#equals(java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
AclEntity other = (AclEntity) obj;
|
||||
if (aclChangeSetId == null)
|
||||
{
|
||||
if (other.aclChangeSetId != null)
|
||||
return false;
|
||||
}
|
||||
else if (!aclChangeSetId.equals(other.aclChangeSetId))
|
||||
return false;
|
||||
if (id == null)
|
||||
{
|
||||
if (other.id != null)
|
||||
return false;
|
||||
}
|
||||
else if (!id.equals(other.id))
|
||||
return false;
|
||||
if (inheritedId == null)
|
||||
{
|
||||
if (other.inheritedId != null)
|
||||
return false;
|
||||
}
|
||||
else if (!inheritedId.equals(other.inheritedId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see java.lang.Comparable#compareTo(java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public int compareTo(Acl o)
|
||||
{
|
||||
return this.getId().compareTo(o.getId());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -21,6 +21,7 @@ package org.alfresco.repo.domain.solr.ibatis;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.domain.node.Node;
|
||||
@@ -133,29 +134,30 @@ public class SOLRDAOImpl implements SOLRDAO
|
||||
source = (List<Acl>) template.selectList(SELECT_ACLS_BY_CHANGESET_IDS, params, new RowBounds(0, maxResults));
|
||||
}
|
||||
// Add any unlinked shared ACLs from defining nodes to index them now
|
||||
ArrayList<Acl> answer = new ArrayList<Acl>(source);
|
||||
HashSet<Long> acls = new HashSet<Long>();
|
||||
for(Acl acl : answer)
|
||||
TreeSet<Acl> sorted = new TreeSet<Acl>(source);
|
||||
HashSet<Long> found = new HashSet<Long>();
|
||||
for(Acl acl : source)
|
||||
{
|
||||
acls.add(acl.getId());
|
||||
found.add(acl.getId());
|
||||
}
|
||||
ArrayList<Acl> sharedAndUnlinked = new ArrayList<Acl>();
|
||||
for(Acl acl : answer)
|
||||
|
||||
for(Acl acl : source)
|
||||
{
|
||||
if(acl.getInheritedId() != null)
|
||||
{
|
||||
if(!acls.contains(acl.getInheritedId()))
|
||||
if(!found.contains(acl.getInheritedId()))
|
||||
{
|
||||
AclEntity shared = new AclEntity();
|
||||
shared.setId(acl.getInheritedId());
|
||||
shared.setAclChangeSetId(acl.getAclChangeSetId());
|
||||
shared.setInheritedId(acl.getInheritedId());
|
||||
sharedAndUnlinked.add(shared);
|
||||
acls.add(shared.getId());
|
||||
sorted.add(shared);
|
||||
}
|
||||
}
|
||||
}
|
||||
answer.addAll(sharedAndUnlinked);
|
||||
|
||||
ArrayList<Acl> answer = new ArrayList<Acl>();
|
||||
answer.addAll(sorted);
|
||||
return answer;
|
||||
}
|
||||
|
||||
|
@@ -24,7 +24,7 @@ package org.alfresco.repo.solr;
|
||||
* @author Derek Hulley
|
||||
* @since 4.0
|
||||
*/
|
||||
public interface Acl
|
||||
public interface Acl extends Comparable<Acl>
|
||||
{
|
||||
Long getId();
|
||||
Long getInheritedId();
|
||||
|
Reference in New Issue
Block a user