Hello, I am using the Java OpenCMIS 0.8.0 SNAPSHOT from about a month ago against an Alfresco 4 instance and all has been working just fine. I am using the AtomPub binding. However, today after adding a some documents and writing a test case to check that the number of records returned > 0, I got a failure because the method: *queryResult.getTotalNumItems()* is returning a *-1* even though there are, in fact, 2 items in the ItemIterable<QueryResult> collection returned.
We have added a custom type namespace "acme:" to test adding some custom properties to the cmis:Document object. This all works fine and the code below works as long as the assertTrue() is not used because that returns the -1 and reports the test failed. Although the assertNotNull(queryResult) is technically invalid because even with NO records found, one will not get back a null, it was a simple bypass to confirm that in fact 2 rows get reported and the information printed by the System.out is correct. I also confirmed through the Chemistry Workbench running a Query, I DO get back 2 records as well. The test code looks like this (some of it borrowed from the *GettingStarted *application): We've written our own wrapper facade called CMISServices to make the required calls via the OpenCMIS API code.. /** * Test method * @throws CMISServiceException */ @Test public void testSearchRepositoryUsingEquals() throws CMISServiceException { String query = "SELECT * FROM acme:doc WHERE acme:attachmentOID='1122334400556677' AND acme:category='Technical'"; ItemIterable<QueryResult> queryResult = cmisServices.searchRepository(query); // calls cmisSession.query(queryString, false) since searchAllVersions is NOT supported on this version of AF 4 System.out.println("***results from query " + query); assertNotNull(queryResult); //assertTrue(queryResult.getTotalNumItems() > 0); if (queryResult != null) { int i = 1; for (QueryResult qr : queryResult) { System.out.println("--------------------------------------------\n" + i + " , " + qr.getPropertyByQueryName("cmis:objectTypeId").getFirstValue() + " , " + qr.getPropertyByQueryName("cmis:name").getFirstValue() + " , " + qr.getPropertyByQueryName("cmis:createdBy").getFirstValue() + " , " + qr.getPropertyByQueryName("cmis:objectId").getFirstValue() + " , " + qr.getPropertyByQueryName("acme:attachmentOID").getFirstValue() + " , " + qr.getPropertyByQueryName("acme:attachmentType").getFirstValue() + " , " + qr.getPropertyByQueryName("cmis:contentStreamFileName").getFirstValue() + " , " + qr.getPropertyByQueryName("cmis:contentStreamMimeType").getFirstValue() + " , " + qr.getPropertyByQueryName("cmis:contentStreamLength").getFirstValue()); i++; } } } And here's what I get in the output (if I *don't rely on that queryResult.getTotalNumItems()* method) ... there were 2 records as expected. ***results from query SELECT * FROM acme:doc WHERE acme:attachmentOID='1122334400556677' AND acme:category='Technical' -------------------------------------------- 1 , D:acme:doc , DMS_CMIS.pdf , admin , workspace://SpacesStore/92facd3f-7ff7-4dd4-ac51-6a71d1a46207;1.0 , 1122334400556677 , Development, DMS_CMIS.pdf , application/pdf , 235549 -------------------------------------------- 2 , D:acme:doc , EMC_Test.doc , admin , workspace://SpacesStore/3af1a42e-9e3e-42fb-af1e-81dce1395f44;1.0 , 1122334400556677 , Development, EMC_Test.doc , application/msword , 99328 Is this something to open a JIRA record for or am I missing something? Thanks