diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/node-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/node-common-SqlMap.xml
index aa15434089..1b23e73a80 100644
--- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/node-common-SqlMap.xml
+++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/node-common-SqlMap.xml
@@ -786,6 +786,20 @@
parentNode.id = #parentNode.id# and
a.child_node_id IS NULL
+
+
-
-
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java b/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java
index 38ae3bcd84..94938192c9 100644
--- a/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java
+++ b/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java
@@ -1782,6 +1782,72 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
// done
return results;
}
+
+ /**
+ * Specific properties not supported by {@link #getChildAssocsByPropertyValue(NodeRef, QName, Serializable)}
+ */
+ private static List getChildAssocsByPropertyValueBannedProps = new ArrayList();
+ static
+ {
+ getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_NODE_DBID);
+ getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_NODE_UUID);
+ getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_NAME);
+ getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_MODIFIED);
+ getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_MODIFIER);
+ getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_CREATED);
+ getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_CREATOR);
+ }
+
+ @Override
+ public List getChildAssocsByPropertyValue(
+ NodeRef nodeRef,
+ QName propertyQName,
+ Serializable value)
+ {
+ // Get the node
+ Pair nodePair = getNodePairNotNull(nodeRef);
+ Long nodeId = nodePair.getFirst();
+
+ // Check the QName is not one of the "special" system maintained ones.
+
+ if (getChildAssocsByPropertyValueBannedProps.contains(propertyQName))
+ {
+ throw new IllegalArgumentException(
+ "getChildAssocsByPropertyValue does not allow search of system maintaied properties: " + propertyQName);
+ }
+
+ final List results = new ArrayList(10);
+ // We have a callback handler to filter results
+ ChildAssocRefQueryCallback callback = new ChildAssocRefQueryCallback()
+ {
+ public boolean preLoadNodes()
+ {
+ return false;
+ }
+
+ public boolean handle(
+ Pair childAssocPair,
+ Pair parentNodePair,
+ Pair childNodePair)
+ {
+ results.add(childAssocPair.getSecond());
+ return true;
+ }
+
+ public void done()
+ {
+ }
+ };
+
+ // Get the assocs pointing to it
+ nodeDAO.getChildAssocsByPropertyValue(nodeId, propertyQName, value, callback);
+
+ // sort the results
+ List orderedList = reorderChildAssocs(results);
+
+ // Done
+ return orderedList;
+ }
public void removeAssociation(NodeRef sourceRef, NodeRef targetRef, QName assocTypeQName)
throws InvalidNodeRefException
@@ -2221,66 +2287,4 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
return true;
}
}
-
- private static List getChildAssocsByPropertyValueBannedProps = new ArrayList();
- static
- {
- getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_NODE_DBID);
- getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_NODE_UUID);
- getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_NAME);
- getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_MODIFIED);
- getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_MODIFIER);
- getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_CREATED);
- getChildAssocsByPropertyValueBannedProps.add(ContentModel.PROP_CREATOR);
- }
-
- @Override
- public List getChildAssocsByPropertyValue(NodeRef nodeRef,
- QName propertyQName,
- Serializable value)
- {
- // Get the node
- Pair nodePair = getNodePairNotNull(nodeRef);
- Long nodeId = nodePair.getFirst();
-
- // Check the QName is not one of the "special" system maintained ones.
-
- if(getChildAssocsByPropertyValueBannedProps.contains(propertyQName))
- {
- throw new IllegalArgumentException("getChildAssocsByPropertyValue does not allow search of system maintaied properties: " + propertyQName);
- }
-
- final List results = new ArrayList(10);
- // We have a callback handler to filter results
- ChildAssocRefQueryCallback callback = new ChildAssocRefQueryCallback()
- {
- public boolean preLoadNodes()
- {
- return false;
- }
-
- public boolean handle(
- Pair childAssocPair,
- Pair parentNodePair,
- Pair childNodePair)
- {
- results.add(childAssocPair.getSecond());
- return true;
- }
-
- public void done()
- {
- }
- };
-
- // Get the assocs pointing to it
- nodeDAO.getChildAssocsByPropertyValue(nodeId, propertyQName, value, callback);
-
- // sort the results
- List orderedList = reorderChildAssocs(results);
-
- // Done
- return orderedList;
- }
-
- }
+}
diff --git a/source/java/org/alfresco/repo/node/db/DbNodeServiceImplTest.java b/source/java/org/alfresco/repo/node/db/DbNodeServiceImplTest.java
index 7aa2a9d018..266d68f8dc 100644
--- a/source/java/org/alfresco/repo/node/db/DbNodeServiceImplTest.java
+++ b/source/java/org/alfresco/repo/node/db/DbNodeServiceImplTest.java
@@ -539,7 +539,5 @@ public class DbNodeServiceImplTest extends BaseNodeServiceTest
{
// expect to go here
}
-
-
}
}