diff --git a/config/alfresco/core-services-context.xml b/config/alfresco/core-services-context.xml
index 1ddda99684..9984231350 100644
--- a/config/alfresco/core-services-context.xml
+++ b/config/alfresco/core-services-context.xml
@@ -814,6 +814,7 @@
+
diff --git a/config/alfresco/model-specific-services-context.xml b/config/alfresco/model-specific-services-context.xml
index a165ae3a5e..17bfe65c2c 100644
--- a/config/alfresco/model-specific-services-context.xml
+++ b/config/alfresco/model-specific-services-context.xml
@@ -79,8 +79,8 @@
-
-
+
+
@@ -90,6 +90,7 @@
+
diff --git a/source/java/org/alfresco/opencmis/CMISConnector.java b/source/java/org/alfresco/opencmis/CMISConnector.java
index c5379ce971..8104d638f1 100644
--- a/source/java/org/alfresco/opencmis/CMISConnector.java
+++ b/source/java/org/alfresco/opencmis/CMISConnector.java
@@ -61,6 +61,7 @@ import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.policy.BehaviourFilter;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
+import org.alfresco.repo.security.permissions.AccessDeniedException;
import org.alfresco.repo.security.permissions.PermissionReference;
import org.alfresco.repo.security.permissions.impl.AccessPermissionImpl;
import org.alfresco.repo.security.permissions.impl.ModelDAO;
@@ -1611,13 +1612,22 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
try
{
- result.add(createCMISObject(createNodeInfo(assocRef), null, false, IncludeRelationships.NONE,
- RENDITION_NONE, false, false));
+ result.add(createCMISObject(createNodeInfo(assocRef), null, false, IncludeRelationships.NONE,
+ RENDITION_NONE, false, false));
}
catch(CmisObjectNotFoundException e)
{
// ignore objects that have not been found (perhaps because their type is unknown to CMIS)
}
+ catch (AccessDeniedException e)
+ {
+ // skip
+ }
+ // TODO: Somewhere this has not been wrapped correctly
+ catch (net.sf.acegisecurity.AccessDeniedException e)
+ {
+ // skip
+ }
}
return result;
diff --git a/source/java/org/alfresco/opencmis/CMISNodeInfoImpl.java b/source/java/org/alfresco/opencmis/CMISNodeInfoImpl.java
index 153aaf2687..df769dd04d 100644
--- a/source/java/org/alfresco/opencmis/CMISNodeInfoImpl.java
+++ b/source/java/org/alfresco/opencmis/CMISNodeInfoImpl.java
@@ -264,6 +264,11 @@ public class CMISNodeInfoImpl implements CMISNodeInfo
{
objecVariant = CMISObjectVariant.PERMISSION_DENIED;
}
+ // TODO: Somewhere this has not been wrapped correctly
+ catch (net.sf.acegisecurity.AccessDeniedException e)
+ {
+ objecVariant = CMISObjectVariant.PERMISSION_DENIED;
+ }
}
protected void analyseNodeRef()
diff --git a/source/java/org/alfresco/repo/coci/CheckOutCheckInServiceImplTest.java b/source/java/org/alfresco/repo/coci/CheckOutCheckInServiceImplTest.java
index d0edfda588..ec45cb379e 100644
--- a/source/java/org/alfresco/repo/coci/CheckOutCheckInServiceImplTest.java
+++ b/source/java/org/alfresco/repo/coci/CheckOutCheckInServiceImplTest.java
@@ -20,6 +20,7 @@ package org.alfresco.repo.coci;
import java.io.Serializable;
import java.util.Collections;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
@@ -462,6 +463,7 @@ public class CheckOutCheckInServiceImplTest extends BaseSpringTest
*/
public void testAutoCancelCheckOut()
{
+ Date modifiedDateBeforeCheckOut = (Date) this.nodeService.getProperty(this.nodeRef, ContentModel.PROP_MODIFIED);
NodeRef workingCopy = checkout();
assertNotNull(workingCopy);
@@ -475,9 +477,15 @@ public class CheckOutCheckInServiceImplTest extends BaseSpringTest
// Good the original is locked
}
+ try {Thread.sleep(2000); } catch (InterruptedException e) {}
+
// Delete the working copy
nodeService.deleteNode(workingCopy);
+ //Make sure that modidied date wasn't changed
+ Date modifiedDateAfterCheckOut = (Date) this.nodeService.getProperty(this.nodeRef, ContentModel.PROP_MODIFIED);
+ assertEquals(modifiedDateBeforeCheckOut, modifiedDateAfterCheckOut);
+
// The original should no longer be locked
this.lockService.checkForLock(this.nodeRef);
diff --git a/source/java/org/alfresco/repo/coci/WorkingCopyAspect.java b/source/java/org/alfresco/repo/coci/WorkingCopyAspect.java
index 846719efd8..875d36b53b 100644
--- a/source/java/org/alfresco/repo/coci/WorkingCopyAspect.java
+++ b/source/java/org/alfresco/repo/coci/WorkingCopyAspect.java
@@ -29,6 +29,7 @@ import org.alfresco.repo.copy.CopyDetails;
import org.alfresco.repo.copy.CopyServicePolicies;
import org.alfresco.repo.copy.DefaultCopyBehaviourCallback;
import org.alfresco.repo.node.NodeServicePolicies;
+import org.alfresco.repo.policy.BehaviourFilter;
import org.alfresco.repo.policy.JavaBehaviour;
import org.alfresco.repo.policy.PolicyComponent;
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
@@ -44,6 +45,8 @@ public class WorkingCopyAspect implements CopyServicePolicies.OnCopyNodePolicy
private NodeService nodeService;
private LockService lockService;
private CheckOutCheckInService checkOutCheckInService;
+ private BehaviourFilter policyBehaviourFilter;
+
/**
* The working copy aspect copy behaviour callback.
@@ -82,6 +85,14 @@ public class WorkingCopyAspect implements CopyServicePolicies.OnCopyNodePolicy
this.checkOutCheckInService = checkOutCheckInService;
}
+ /**
+ * @param policyBehaviourFilter
+ */
+ public void setPolicyBehaviourFilter(BehaviourFilter policyBehaviourFilter)
+ {
+ this.policyBehaviourFilter = policyBehaviourFilter;
+ }
+
/**
* Initialise method
*/
@@ -119,8 +130,16 @@ public class WorkingCopyAspect implements CopyServicePolicies.OnCopyNodePolicy
NodeRef checkedOutNodeRef = checkOutCheckInService.getCheckedOut(nodeRef);
if (checkedOutNodeRef != null)
{
- lockService.unlock(checkedOutNodeRef);
- nodeService.removeAspect(checkedOutNodeRef, ContentModel.ASPECT_CHECKED_OUT);
+ policyBehaviourFilter.disableBehaviour(checkedOutNodeRef, ContentModel.ASPECT_AUDITABLE);
+ try
+ {
+ lockService.unlock(checkedOutNodeRef);
+ nodeService.removeAspect(checkedOutNodeRef, ContentModel.ASPECT_CHECKED_OUT);
+ }
+ finally
+ {
+ policyBehaviourFilter.enableBehaviour(checkedOutNodeRef, ContentModel.ASPECT_AUDITABLE);
+ }
}
}
diff --git a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java
index 0c4b07c1a0..35e4574a57 100644
--- a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java
+++ b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImpl.java
@@ -240,15 +240,10 @@ public class FileFolderServiceImpl implements FileFolderService
private List toFileInfo(List nodeRefs) throws InvalidTypeException
{
List results = new ArrayList(nodeRefs.size());
- Client client = FileFilterMode.getClient();
for (NodeRef nodeRef : nodeRefs)
{
try
{
- if(hiddenAspect.getVisibility(client, nodeRef) == Visibility.NotVisible)
- {
- continue;
- }
FileInfo fileInfo = toFileInfo(nodeRef, true);
results.add(fileInfo);
}
@@ -396,14 +391,8 @@ public class FileFolderServiceImpl implements FileFolderService
}
final List nodeInfos = new ArrayList(nodeRefs.size());
- final Client client = FileFilterMode.getClient();
for (NodeRef nodeRef : nodeRefs)
{
- if(hiddenAspect.getVisibility(client, nodeRef) == Visibility.NotVisible)
- {
- continue;
- }
-
nodeInfos.add(toFileInfo(nodeRef, true));
}
PermissionCheckedCollectionMixin.create(nodeInfos, nodeRefs);
diff --git a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImplTest.java b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImplTest.java
index a75047da18..75420b8543 100644
--- a/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImplTest.java
+++ b/source/java/org/alfresco/repo/model/filefolder/FileFolderServiceImplTest.java
@@ -70,7 +70,10 @@ import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
+import org.alfresco.util.FileFilterMode;
+import org.alfresco.util.FileFilterMode.Client;
import org.alfresco.util.GUID;
+import org.alfresco.util.Pair;
import org.springframework.context.ApplicationContext;
import org.springframework.extensions.surf.util.I18NUtil;
@@ -1369,4 +1372,49 @@ public class FileFolderServiceImplTest extends TestCase
assertNotNull(pagingResults.getPage());
assertEquals(1, pagingResults.getPage().size());
}
+
+ public void testListHiddenFiles()
+ {
+ // Test that hidden files are not returned for clients that should not be able to see them,
+ // and that the total result count is correct.
+
+ Client saveClient = FileFilterMode.setClient(Client.webdav);
+ try
+ {
+ // create some hidden files
+ NodeRef nodeRef = fileFolderService.create(workingRootNodeRef, "" + System.currentTimeMillis(), ContentModel.TYPE_CONTENT).getNodeRef();
+ NodeRef nodeRef1 = fileFolderService.create(nodeRef, "parent", ContentModel.TYPE_CONTENT).getNodeRef();
+ for(int i = 0; i < 10; i++)
+ {
+ fileFolderService.create(nodeRef1, ".child" + i, ContentModel.TYPE_CONTENT).getNodeRef();
+ }
+
+ // and some visible files
+ for(int i = 0; i < 10; i++)
+ {
+ fileFolderService.create(nodeRef1, "visiblechild" + i, ContentModel.TYPE_CONTENT).getNodeRef();
+ }
+
+ // switch to a client that should not see the hidden files
+ saveClient = FileFilterMode.setClient(Client.cmis);
+ PagingRequest pagingRequest = new PagingRequest(0, Integer.MAX_VALUE);
+ pagingRequest.setRequestTotalCountMax(10000); // need this so that total count is set
+
+ PagingResults results = fileFolderService.list(nodeRef1, true, true, null, null, pagingRequest);
+ Pair totalResultCount = results.getTotalResultCount();
+ assertNotNull(totalResultCount.getFirst());
+ assertEquals("Total result lower count should be 10", 10, totalResultCount.getFirst().intValue());
+ assertNotNull(totalResultCount.getSecond());
+ assertEquals("Total result upper count should be 10", 10, totalResultCount.getSecond().intValue());
+ for(FileInfo fileInfo : results.getPage())
+ {
+ assertTrue(fileInfo.getName().startsWith("visiblechild"));
+ }
+ assertEquals("Expected only 10 results", 10, results.getPage().size());
+ }
+ finally
+ {
+ FileFilterMode.setClient(saveClient);
+ }
+ }
}
diff --git a/source/java/org/alfresco/repo/model/filefolder/GetChildrenCannedQuery.java b/source/java/org/alfresco/repo/model/filefolder/GetChildrenCannedQuery.java
new file mode 100644
index 0000000000..2b84bfce40
--- /dev/null
+++ b/source/java/org/alfresco/repo/model/filefolder/GetChildrenCannedQuery.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2005-2012 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+package org.alfresco.repo.model.filefolder;
+
+import java.util.List;
+
+import org.alfresco.query.CannedQueryParameters;
+import org.alfresco.repo.domain.node.NodeDAO;
+import org.alfresco.repo.domain.node.NodePropertyHelper;
+import org.alfresco.repo.domain.qname.QNameDAO;
+import org.alfresco.repo.domain.query.CannedQueryDAO;
+import org.alfresco.repo.model.filefolder.HiddenAspect.Visibility;
+import org.alfresco.repo.node.getchildren.FilterProp;
+import org.alfresco.repo.security.permissions.AccessDeniedException;
+import org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityBean;
+import org.alfresco.repo.tenant.TenantService;
+import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.util.FileFilterMode;
+import org.alfresco.util.FileFilterMode.Client;
+
+/**
+ * GetChidren canned query for files and folders.
+ *
+ * To get paged list of files and folders of a parent folder filtered by child type.
+ * Also optionally filtered and/or sorted by one or more properties (up to three).
+ *
+ * This is the same as the nodes getchildren canned query, except it takes into account hidden files and folders.
+ *
+ * @since 4.1.1
+ * @author steveglover
+ *
+ */
+public class GetChildrenCannedQuery extends org.alfresco.repo.node.getchildren.GetChildrenCannedQuery
+{
+ private HiddenAspect hiddenAspect;
+
+ public GetChildrenCannedQuery(
+ NodeDAO nodeDAO,
+ QNameDAO qnameDAO,
+ CannedQueryDAO cannedQueryDAO,
+ NodePropertyHelper nodePropertyHelper,
+ TenantService tenantService,
+ MethodSecurityBean methodSecurity,
+ CannedQueryParameters params,
+ HiddenAspect hiddenAspect)
+ {
+ super(nodeDAO, qnameDAO, cannedQueryDAO, nodePropertyHelper, tenantService, methodSecurity, params);
+ this.hiddenAspect = hiddenAspect;
+ }
+
+ @Override
+ protected UnsortedChildQueryCallback getUnsortedChildQueryCallback(final List rawResult, final int requestedCount)
+ {
+ UnsortedChildQueryCallback callback = new FileFolderUnsortedChildQueryCallback(rawResult, requestedCount);
+ return callback;
+ }
+
+ @Override
+ protected FilterSortChildQueryCallback getFilterSortChildQuery(final List children, final List filterProps)
+ {
+ FilterSortChildQueryCallback callback = new FileFolderFilterSortChildQueryCallback(children, filterProps);
+ return callback;
+ }
+
+ private class FileFolderFilterSortChildQueryCallback extends DefaultFilterSortChildQueryCallback
+ {
+ public FileFolderFilterSortChildQueryCallback(List children, List filterProps)
+ {
+ super(children, filterProps);
+ }
+
+ @Override
+ protected boolean include(FilterSortNode node)
+ {
+ boolean ret = super.include(node);
+
+ // only visible files are returned, relative to the client type.
+ try
+ {
+ final Client client = FileFilterMode.getClient();
+ return ret && hiddenAspect.getVisibility(client, node.getNodeRef()) != Visibility.NotVisible;
+ }
+ catch(AccessDeniedException e)
+ {
+ // user may not have permission to determine the visibility of the node
+ return ret;
+ }
+ }
+
+ }
+
+ private class FileFolderUnsortedChildQueryCallback extends DefaultUnsortedChildQueryCallback
+ {
+ public FileFolderUnsortedChildQueryCallback(List rawResult,int requestedCount)
+ {
+ super(rawResult, requestedCount);
+ }
+
+ @Override
+ protected boolean include(NodeRef nodeRef)
+ {
+ boolean ret = super.include(nodeRef);
+
+ // only visible files are returned, relative to the client type.
+ try
+ {
+ final Client client = FileFilterMode.getClient();
+ return ret && hiddenAspect.getVisibility(client, nodeRef) != Visibility.NotVisible;
+ }
+ catch(AccessDeniedException e)
+ {
+ // user may not have permission to determine the visibility of the node
+ return ret;
+ }
+ }
+
+ }
+
+}
diff --git a/source/java/org/alfresco/repo/model/filefolder/GetChildrenCannedQueryFactory.java b/source/java/org/alfresco/repo/model/filefolder/GetChildrenCannedQueryFactory.java
new file mode 100644
index 0000000000..b72a33e3a5
--- /dev/null
+++ b/source/java/org/alfresco/repo/model/filefolder/GetChildrenCannedQueryFactory.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2005-2012 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+package org.alfresco.repo.model.filefolder;
+
+import org.alfresco.query.CannedQuery;
+import org.alfresco.query.CannedQueryParameters;
+import org.alfresco.repo.domain.node.NodePropertyHelper;
+import org.alfresco.service.cmr.repository.NodeRef;
+
+/**
+ * GetChidren canned query factory for files and folders.
+ *
+ * @since 4.1.1
+ * @author steveglover
+ *
+ */
+public class GetChildrenCannedQueryFactory extends org.alfresco.repo.node.getchildren.GetChildrenCannedQueryFactory
+{
+ private HiddenAspect hiddenAspect;
+
+ public void setHiddenAspect(HiddenAspect hiddenAspect)
+ {
+ this.hiddenAspect = hiddenAspect;
+ }
+
+ @Override
+ public CannedQuery getCannedQuery(CannedQueryParameters parameters)
+ {
+ NodePropertyHelper nodePropertyHelper = new NodePropertyHelper(dictionaryService, qnameDAO, localeDAO, contentDataDAO);
+
+ return (CannedQuery) new GetChildrenCannedQuery(nodeDAO, qnameDAO, cannedQueryDAO, nodePropertyHelper, tenantService, methodSecurity, parameters, hiddenAspect);
+ }
+}
diff --git a/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQuery.java b/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQuery.java
index d8265584e8..3ea7ab1930 100644
--- a/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQuery.java
+++ b/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQuery.java
@@ -125,6 +125,18 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions children, final List filterProps)
+ {
+ FilterSortChildQueryCallback callback = new DefaultFilterSortChildQueryCallback(children, filterProps);
+ return callback;
+ }
+
+ protected UnsortedChildQueryCallback getUnsortedChildQueryCallback(final List rawResult, final int requestedCount)
+ {
+ UnsortedChildQueryCallback callback = new DefaultUnsortedChildQueryCallback(rawResult, requestedCount);
+ return callback;
+ }
+
@Override
protected List queryAndFilter(CannedQueryParameters parameters)
{
@@ -228,25 +240,8 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions children = new ArrayList(100);
-
- final boolean applyFilter = (filterProps.size() > 0);
-
- FilterSortChildQueryCallback callback = new FilterSortChildQueryCallback()
- {
- public boolean handle(FilterSortNode node)
- {
- // filter, if needed
- if ((! applyFilter) || includeFilter(node.getPropVals(), filterProps))
- {
- children.add(node);
- }
-
- // More results
- return true;
- }
- };
-
- FilterSortResultHandler resultHandler = new FilterSortResultHandler(callback);
+ final FilterSortChildQueryCallback c = getFilterSortChildQuery(children, filterProps);
+ FilterSortResultHandler resultHandler = new FilterSortResultHandler(c);
cannedQueryDAO.executeQuery(QUERY_NAMESPACE, QUERY_SELECT_GET_CHILDREN_WITH_PROPS, params, 0, Integer.MAX_VALUE, resultHandler);
resultHandler.done();
@@ -269,17 +264,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions rawResult = new ArrayList(Math.min(1000, requestedCount));
- UnsortedChildQueryCallback callback = new UnsortedChildQueryCallback()
- {
- public boolean handle(NodeRef nodeRef)
- {
- rawResult.add(tenantService.getBaseName(nodeRef));
-
- // More results ?
- return (rawResult.size() < requestedCount);
- }
- };
-
+ UnsortedChildQueryCallback callback = getUnsortedChildQueryCallback(rawResult, requestedCount);
UnsortedResultHandler resultHandler = new UnsortedResultHandler(callback);
cannedQueryDAO.executeQuery(QUERY_NAMESPACE, QUERY_SELECT_GET_CHILDREN_WITHOUT_PROPS, params, 0, Integer.MAX_VALUE, resultHandler);
resultHandler.done();
@@ -544,18 +529,79 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions children;
+ private List filterProps;
+ private boolean applyFilter;
+
+ public DefaultFilterSortChildQueryCallback(final List children, final List filterProps)
+ {
+ this.children = children;
+ this.filterProps = filterProps;
+ this.applyFilter = (filterProps.size() > 0);
+ }
+
+ @Override
+ public boolean handle(FilterSortNode node)
+ {
+ if(include(node))
+ {
+ children.add(node);
+ }
+
+ // More results
+ return true;
+ }
+
+ protected boolean include(FilterSortNode node)
+ {
+ // filter, if needed
+ return(!applyFilter || includeFilter(node.getPropVals(), filterProps));
+ }
+ }
+
+ protected class DefaultUnsortedChildQueryCallback implements UnsortedChildQueryCallback
+ {
+ private List rawResult;
+ private int requestedCount;
+
+ public DefaultUnsortedChildQueryCallback(final List rawResult, final int requestedCount)
+ {
+ this.rawResult = rawResult;
+ this.requestedCount = requestedCount;
+ }
+
+ @Override
+ public boolean handle(NodeRef nodeRef)
+ {
+ if(include(nodeRef))
+ {
+ rawResult.add(tenantService.getBaseName(nodeRef));
+ }
+
+ // More results ?
+ return (rawResult.size() < requestedCount);
+ }
+
+ protected boolean include(NodeRef nodeRef)
+ {
+ return true;
+ }
+ }
+
+ protected interface UnsortedChildQueryCallback
{
boolean handle(NodeRef nodeRef);
}
- private class FilterSortResultHandler implements CannedQueryDAO.ResultHandler
+ protected class FilterSortResultHandler implements CannedQueryDAO.ResultHandler
{
private final FilterSortChildQueryCallback resultsCallback;
private boolean more = true;
@@ -656,7 +702,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions propVals; // subset of nodes properties - used for filtering and/or sorting
diff --git a/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQueryFactory.java b/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQueryFactory.java
index 09c51ec5ef..64fb573613 100644
--- a/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQueryFactory.java
+++ b/source/java/org/alfresco/repo/node/getchildren/GetChildrenCannedQueryFactory.java
@@ -52,15 +52,15 @@ import org.alfresco.util.PropertyCheck;
*/
public class GetChildrenCannedQueryFactory extends AbstractCannedQueryFactory
{
- private DictionaryService dictionaryService;
- private NodeDAO nodeDAO;
- private QNameDAO qnameDAO;
- private LocaleDAO localeDAO;
- private ContentDataDAO contentDataDAO;
- private CannedQueryDAO cannedQueryDAO;
- private TenantService tenantService;
+ protected DictionaryService dictionaryService;
+ protected NodeDAO nodeDAO;
+ protected QNameDAO qnameDAO;
+ protected LocaleDAO localeDAO;
+ protected ContentDataDAO contentDataDAO;
+ protected CannedQueryDAO cannedQueryDAO;
+ protected TenantService tenantService;
- private MethodSecurityBean methodSecurity;
+ protected MethodSecurityBean methodSecurity;
public void setDictionaryService(DictionaryService dictionaryService)
{
diff --git a/source/java/org/alfresco/repo/node/index/FullIndexRecoveryComponent.java b/source/java/org/alfresco/repo/node/index/FullIndexRecoveryComponent.java
index 922f197253..1b9efb058c 100644
--- a/source/java/org/alfresco/repo/node/index/FullIndexRecoveryComponent.java
+++ b/source/java/org/alfresco/repo/node/index/FullIndexRecoveryComponent.java
@@ -176,12 +176,10 @@ public class FullIndexRecoveryComponent extends AbstractReindexComponent
}
// put the server into read-only mode for the duration
- boolean allowWrite = !transactionService.isReadOnly();
try
{
if (lockServer)
{
-
// set the server into read-only mode
transactionService.setAllowWrite(false, vetoName);
}
@@ -224,7 +222,6 @@ public class FullIndexRecoveryComponent extends AbstractReindexComponent
// restore read-only state
transactionService.setAllowWrite(true, vetoName);
}
-
}
/**
diff --git a/source/java/org/alfresco/repo/search/impl/solr/SolrBackupClient.java b/source/java/org/alfresco/repo/search/impl/solr/SolrBackupClient.java
index b8aa1e988c..46cba5df10 100644
--- a/source/java/org/alfresco/repo/search/impl/solr/SolrBackupClient.java
+++ b/source/java/org/alfresco/repo/search/impl/solr/SolrBackupClient.java
@@ -155,7 +155,7 @@ public class SolrBackupClient implements InitializingBean
}
catch(SolrServerException e)
{
- throw new AlfrescoRuntimeException("Bakup for core "+core+ " feailed .... ", e);
+ throw new AlfrescoRuntimeException("Backup for core "+core+ " failed .... ", e);
}
}