Ok. That does the trick. Is it incorrect to define those parameters?
Geert ----- Original Message ----- From: "Florian Müller" <[email protected]> To: "Geert Vanheusden" <[email protected]> Sent: Wednesday, April 20, 2011 3:16:57 PM Subject: Re: Different result with same query but other OpenCMIS version Please remove all LOCALE session parameters and run the query again. Florian On 20/04/2011 13:47, Geert Vanheusden wrote: > Ok. > > Added the following: > > for (QueryResult queryResult : query) { > System.out.println("- " + > queryResult.getPropertyValueById("cmis:objectId")); > } > System.out.println("Total results: " + query.getTotalNumItems()); > > > Results: > > 0.2.0: > ------ > - workspace://SpacesStore/586dbf3c-dc8d-4b5a-a331-7f04c5b9d7ad > Total results: 1 > > 0.3.0: > ------ > Total results: 0 > > > And the links to the Wireshark packets: > > http://dl.dropbox.com/u/623463/alf/OpenCMIS-0.2.0-debug.txt > http://dl.dropbox.com/u/623463/alf/OpenCMIS-0.3.0-debug.txt > > The POST url looks identical... very strange. > > Kind regards, > > Geert > > ----- Original Message ----- > From: "Florian Müller"<[email protected]> > To: [email protected], "Geert Vanheusden"<[email protected]> > Sent: Wednesday, April 20, 2011 2:05:37 PM > Subject: Re: Different result with same query but other OpenCMIS version > > Could you please iterate through all results - even though getTotalNumItems() > returns 0 - and count the results? > Would it be possible to capture the network traffic? > > Florian > > > On 20/04/2011 12:30, Geert Vanheusden wrote: >> Ok, I extracted some code in a separate application. >> >> ------------------------------------- >> >> package be.idewe.park; >> >> import java.util.HashMap; >> import java.util.Map; >> >> import org.apache.chemistry.opencmis.client.api.ItemIterable; >> import org.apache.chemistry.opencmis.client.api.QueryResult; >> import org.apache.chemistry.opencmis.client.api.Session; >> import org.apache.chemistry.opencmis.client.api.SessionFactory; >> import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl; >> import org.apache.chemistry.opencmis.commons.SessionParameter; >> import org.apache.chemistry.opencmis.commons.enums.BindingType; >> >> public class TestQuery { >> >> /** >> * @param args >> */ >> public static void main(String[] args) { >> TestQuery testQuery = new TestQuery(); >> >> Session session = testQuery.getSession(); >> ItemIterable<QueryResult> query = session.query("SELECT >> DOCUMENT.*, EMPLOYEEDOCUMENT.* FROM park:document AS DOCUMENT JOIN >> park:employeeDocument AS EMPLOYEEDOCUMENT ON DOCUMENT.cmis:objectId = >> EMPLOYEEDOCUMENT.cmis:objectId WHERE >> (EMPLOYEEDOCUMENT.employeeDoc:currentEmployeeName LIKE '%VANHEUSDEN%')", >> false); >> >> System.out.println(query.getTotalNumItems()); >> >> } >> >> public Session getSession() { >> // default factory implementation of client runtime >> SessionFactory f = SessionFactoryImpl.newInstance(); >> Map<String, String> parameter = new HashMap<String, String>(); >> >> // user credentials >> parameter.put(SessionParameter.USER, "admin"); >> parameter.put(SessionParameter.PASSWORD, "admin"); >> >> // connection settings >> parameter.put(SessionParameter.ATOMPUB_URL, >> "http://localhost:7070/alfresco/s/cmis"); >> parameter.put(SessionParameter.BINDING_TYPE, >> BindingType.ATOMPUB.value()); >> >> // session locale >> parameter.put(SessionParameter.LOCALE_ISO3166_COUNTRY, "be"); >> parameter.put(SessionParameter.LOCALE_ISO639_LANGUAGE, "nl"); >> parameter.put(SessionParameter.LOCALE_VARIANT, ""); >> >> parameter.put(SessionParameter.OBJECT_FACTORY_CLASS, >> "org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl"); >> >> return f.getRepositories(parameter).get(0).createSession(); >> } >> >> } >> ---------------------------- >> >> And here a POM snippet: >> >> <dependencies> >> <!-- OpenCMIS --> >> <dependency> >> <groupId>org.apache.chemistry.opencmis</groupId> >> <artifactId>chemistry-opencmis-client-impl</artifactId> >> <version>0.3.0</version> >> </dependency> >> <dependency> >> <groupId>org.alfresco.cmis.client</groupId> >> <artifactId>alfresco-opencmis-extension</artifactId> >> <version>0.2</version> >> </dependency> >> </dependencies> >> >> --------------------------- >> >> So when I execute this code I get "0" (incorrect). If I replace the >> dependency with "0.2.0-incubating" it returns "1". >> >> Kind regards, >> >> Geert >> >> >> ----- Original Message ----- >> From: "Florian Müller"<[email protected]> >> To: [email protected] >> Sent: Wednesday, April 20, 2011 12:44:01 PM >> Subject: Re: Different result with same query but other OpenCMIS version >> >> No, Alfresco uses a different parser. >> If the CMIS query didn't change and the repository implementation didn't >> change, only the interpretation of the results can be different on the >> client side. But we haven't touched that code for quite a while. >> >> Florian >> >> >> On 20/04/2011 11:37, Jens Hübel wrote: >>> Does the Alfresco implementation use the opencmis query parser? Even that >>> should not have been changed with the exception of a few minor patches. Is >>> there a chance to find out what native queries are generated from the CMIS >>> one? >>> >>> Jens >>> >>> >>> -----Original Message----- >>> From: Geert Vanheusden [mailto:[email protected]] >>> Sent: Mittwoch, 20. April 2011 11:41 >>> To: dev >>> Subject: Different result with same query but other OpenCMIS version >>> >>> Dear, >>> >>> I just upgraded to OpenCMIS 0.3.0 (coming from 0.2.0-incubating) and I >>> noticed that the same query I used before returns an incorrect result. >>> >>> I have a custom document type (park:document) and a park:employeeDocument >>> aspect. >>> >>> When I execute the following query using OpenCMIS 0.2.0-incubating I have >>> one document as a result (correct). If I execute the same query using >>> OpenCMIS 0.3.0 then there are no documents returned. >>> >>> cmisSession.query(" >>> SELECT DOCUMENT.*, EMPLOYEEDOCUMENT.* >>> FROM park:document AS DOCUMENT >>> JOIN park:employeeDocument AS EMPLOYEEDOCUMENT >>> ON DOCUMENT.cmis:objectId = EMPLOYEEDOCUMENT.cmis:objectId >>> WHERE (EMPLOYEEDOCUMENT.employeeDoc:currentEmployeeName LIKE '%VANHEUSDEN%') >>> ", false) >>> >>> I am using the alfresco-opencmis-extension 0.2 and querying against an >>> Alfreso enterprise 3.4. >>> If I execute the same query in the latest version of the OpenCMIS workbench >>> I have also one document as a result (correct). >>> >>> Any ideas? Maybe a bug in OpenCMIS 0.3.0? >>> >>> Kind regards, >>> >>> Geert Vanheusden >>> >>> >>> _________________________________________________ >>> >>> We published a new company movie featuring YOU! >>> See http://www.aca-it.be/movie >>> _________________________________________________ >> >
