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

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.