From 89da401e2f2da27fe7089ffaaf2817e77d381a9d Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Tue, 21 Jun 2016 11:06:16 +0000 Subject: [PATCH] Merged 5.1.N (5.1.2) to 5.2.N (5.2.1) 128209 ahind: Fix for MNT-16387 No results are returned for a CMIS query which contains IS NULL for documents with a NULL property git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@128217 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../metadata-query-common-SqlMap.xml | 11 +++++++++-- .../opencmis/search/OpenCmisQueryTest.java | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/metadata-query-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/metadata-query-common-SqlMap.xml index cceaeb6cd3..d66e82a93b 100644 --- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/metadata-query-common-SqlMap.xml +++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/metadata-query-common-SqlMap.xml @@ -74,7 +74,14 @@ ( - node.id IN ( + + + node.id NOT IN ( + + + node.id IN ( + + @@ -108,7 +115,7 @@ ${item.alias}.${item.fieldName} IS NOT NULL - ${item.alias}.${item.fieldName} IS NULL + ${item.alias}.${item.fieldName} IS NOT NULL ${item.fieldAndFunction} > #{item.value} diff --git a/source/test-java/org/alfresco/opencmis/search/OpenCmisQueryTest.java b/source/test-java/org/alfresco/opencmis/search/OpenCmisQueryTest.java index 48f42893dc..57c0bcb96f 100644 --- a/source/test-java/org/alfresco/opencmis/search/OpenCmisQueryTest.java +++ b/source/test-java/org/alfresco/opencmis/search/OpenCmisQueryTest.java @@ -5738,6 +5738,21 @@ public class OpenCmisQueryTest extends BaseCMISTest testQuery("SELECT * FROM cm:ownable ", 0, false, "cmis:name", new String(), true); testExtendedQuery("SELECT * FROM cm:ownable ", 1, false, "cmis:name", new String(), false); } + + public void testTitled() throws Exception + { + testExtendedQuery("SELECT * FROM cm:titled where cm:title is null ", 0, false, "cmis:name", new String(), false); + testExtendedQuery("SELECT * FROM cm:titled where cm:title is not null ", 11, false, "cmis:name", new String(), false); + nodeService.setProperty(c10, ContentModel.PROP_TITLE, null); + testExtendedQuery("SELECT * FROM cm:titled where cm:title is null ", 1, false, "cmis:name", new String(), false); + testExtendedQuery("SELECT * FROM cm:titled where cm:title is not null ", 10, false, "cmis:name", new String(), false); + nodeService.setProperty(c10, ContentModel.PROP_TITLE, "meep"); + testExtendedQuery("SELECT * FROM cm:titled where cm:title is null ", 0, false, "cmis:name", new String(), false); + testExtendedQuery("SELECT * FROM cm:titled where cm:title is not null ", 11, false, "cmis:name", new String(), false); + nodeService.removeProperty(c10, ContentModel.PROP_TITLE); + testExtendedQuery("SELECT * FROM cm:titled where cm:title is null ", 1, false, "cmis:name", new String(), false); + testExtendedQuery("SELECT * FROM cm:titled where cm:title is not null ", 10, false, "cmis:name", new String(), false); + } public void testNotKeyword() throws Exception {