cancel
Showing results for 
Search instead for 
Did you mean: 

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

rg1_
Star Contributor
Star Contributor

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	
    ...
2 REPLIES 2

Florent_Guillau
World-Class Innovator
World-Class Innovator

Yes a JIRA would help track this. Thanks.

rg1_
Star Contributor
Star Contributor

See JIRA [NXP-12974][1].

Getting started

Attention: Blogs & Forums are in READ-ONLY mode from Oct 9-19 as we transition to our new platform. Learn more.

Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.