CMIS Browser Binding NavigationService getObjectParents/getFolderParent fail on latest 5.6.0 branch

Proposed nuxeo-chemistry test case TestNuxeoSessionBrowser (modeled after TestNuxeoSessionAtomPub) on 5.6.0 branch has three failing tests whose client-side stack traces are listed below. It appears the chemistry-opencmis 0.7.0 TypeCacheImpl.getTypeDefinitionForObject(String objectId) method is causing the problem (the server-side stack trace is included at the bottom of this posting). In 0.7.0, the method invokes service.getObjectInfo(repositoryId, objectId) which can return objects without property cmis:objectTypeId set thus causing the problem. Instead it should invoke service.getObject(repositoryId, objectId, “cmis:objectId,cmis:objectTypeId,cmis:baseTypeId,cmis:secondaryObjectTypeIds”, false, IncludeRelationships.NONE, “cmis:none”, false, false, null) with the proper filter set as is done in 0.10.0 ServerTypeCacheImpl. Should I open a bug in JIRA?

TestNuxeoSessionBrowser
org.nuxeo.ecm.core.opencmis.impl.TestNuxeoSessionBrowser

testPath(org.nuxeo.ecm.core.opencmis.impl.TestNuxeoSessionBrowser)
org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException: Type Id must be set!
at org.apache.chemistry.opencmis.client.bindings.spi.browser.AbstractBrowserBindingService.convertStatusCode(AbstractBrowserBindingService.java:207)
at org.apache.chemistry.opencmis.client.bindings.spi.browser.AbstractBrowserBindingService.read(AbstractBrowserBindingService.java:323)
at org.apache.chemistry.opencmis.client.bindings.spi.browser.NavigationServiceImpl.getObjectParents(NavigationServiceImpl.java:122)
at org.apache.chemistry.opencmis.client.runtime.AbstractFilableCmisObject.getPaths(AbstractFilableCmisObject.java:96)
at org.nuxeo.ecm.core.opencmis.impl.NuxeoSessionTestCase.testPath(NuxeoSessionTestCase.java:236)
...

testParent(org.nuxeo.ecm.core.opencmis.impl.TestNuxeoSessionBrowser)
org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException: Type Id must be set!
at org.apache.chemistry.opencmis.client.bindings.spi.browser.AbstractBrowserBindingService.convertStatusCode(AbstractBrowserBindingService.java:207)
at org.apache.chemistry.opencmis.client.bindings.spi.browser.AbstractBrowserBindingService.read(AbstractBrowserBindingService.java:323)
at org.apache.chemistry.opencmis.client.bindings.spi.browser.NavigationServiceImpl.getFolderParent(NavigationServiceImpl.java:134)
at org.apache.chemistry.opencmis.client.runtime.FolderImpl.getParents(FolderImpl.java:411)
at org.apache.chemistry.opencmis.client.runtime.AbstractFilableCmisObject.getParents(AbstractFilableCmisObject.java:49)
at org.apache.chemistry.opencmis.client.runtime.FolderImpl.getFolderParent(FolderImpl.java:360)
at org.nuxeo.ecm.core.opencmis.impl.NuxeoSessionTestCase.testParent(NuxeoSessionTestCase.java:243)
...

testMove(org.nuxeo.ecm.core.opencmis.impl.TestNuxeoSessionBrowser)
org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException: Type Id must be set!
at org.apache.chemistry.opencmis.client.bindings.spi.browser.AbstractBrowserBindingService.convertStatusCode(AbstractBrowserBindingService.java:207)
at org.apache.chemistry.opencmis.client.bindings.spi.browser.AbstractBrowserBindingService.read(AbstractBrowserBindingService.java:323)
at org.apache.chemistry.opencmis.client.bindings.spi.browser.NavigationServiceImpl.getObjectParents(NavigationServiceImpl.java:122)
at org.apache.chemistry.opencmis.client.runtime.AbstractFilableCmisObject.getParents(AbstractFilableCmisObject.java:56)
at org.apache.chemistry.opencmis.client.runtime.AbstractFilableCmisObject.getParents(AbstractFilableCmisObject.java:49)
at org.nuxeo.ecm.core.opencmis.impl.NuxeoSessionTestCase.testMove(NuxeoSessionTestCase.java:692)
...

Server-side Stack Trace

Daemon Thread [http-bio-17488-exec-7] (Suspended (breakpoint at line 45 in TypeCacheImpl))  
owns: SocketWrapper<E>  (id=137)    
TypeCacheImpl.getTypeDefinition(String) line: 45    
TypeCacheImpl.getTypeDefinitionForObject(String) line: 62   
JSONConverter.convert(Properties, String, TypeCache, boolean) line: 912 
JSONConverter.convert(ObjectData, TypeCache, boolean) line: 832 
JSONConverter.convert(ObjectParentData, TypeCache) line: 1175   
NavigationService.getObjectParents(CallContext, CmisService, String, HttpServletRequest, HttpServletResponse) line: 213 
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]  
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39  
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25  
Method.invoke(Object, Object...) line: 597  
Dispatcher.dispatch(String, String, CallContext, CmisService, String, HttpServletRequest, HttpServletResponse) line: 92 
CmisBrowserBindingServlet.dispatch(CallContext, HttpServletRequest, HttpServletResponse) line: 357  
CmisBrowserBindingServlet.service(HttpServletRequest, HttpServletResponse) line: 260    
CmisBrowserBindingServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 722   
    ...
0 votes

0 answers

2252 views

ANSWER

Yes a JIRA would help track this. Thanks.
10/24/2013

rg1
See JIRA NXP-12974.
10/24/2013