chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tom DeBruycker <tom.debruyc...@gmail.com>
Subject "Bad Request" exception when attempting to create unfiled document in Apache Chemistry 0.10.0
Date Mon, 24 Feb 2014 17:01:47 GMT
Hi,

I am attempting to create an unfiled document in an IBM FileNet
repository.  I am passing null for the folder ID and invoking the
createDocument() method form my session object.  I do specify an object id
for the new document in the HashMap of passed properties.

The exception I am getting from session.createDocument()

org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException:
Bad Request
    at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:458)
    at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.post(AbstractAtomPubService.java:629)
    at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.createDocument(ObjectServiceImpl.java:119)
    at
org.apache.chemistry.opencmis.client.runtime.SessionImpl.createDocument(SessionImpl.java:751)
    at
com.engagepoint.CMIS.CmisUtil.createUnfiledTextDocument(CmisUtil.java:532)
    at com.engagepoint.CMIS.FileNetClient.uploadFile(FileNetClient.java:123)
    at com.engagepoint.CMIS.FileNetClient.main(FileNetClient.java:68)

I am tracing the Apache Chemistry code using the Jad decompiler.  The
exception that I see in
org.apache.chemistry.opencmis.runtime.SessionImpl.createDocument is:

com.ibm.ecm.cmis.exceptions.InvalidArgumentException: CIL1144: The service
cannot be completed because the required input parameter, objectId, was not
specified.
Explanation: No additional explanation is required.
Action: Specify the required input parameter.
 For more information about implementing the service, see the OASIS CMIS
API specification.



com.ibm.ecm.cmis.exceptions.InvalidArgumentException: CIL1144: The service
cannot be completed because the required input parameter, objectId, was not
specified.
Explanation: No additional explanation is required.
Action: Specify the required input parameter.
 For more information about implementing the service, see the OASIS CMIS
API specification.
    at
com.ibm.ecm.cmis.app.datasource.UnfiledSource.removeFromFolder(UnfiledSource.java:131)
    at com.ibm.ecm.cmis.app.beans.Unfiled.doPost(Unfiled.java:69)
    at
com.ibm.ecm.cmis.app.beans.BaseCollection.post(BaseCollection.java:552)
    at com.ibm.ecm.cmis.app.servlet.CMISServlet.doPost(CMISServlet.java:188)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
    at
com.ibm.ecm.cmis.app.servlet.CMISServlet.service(CMISServlet.java:426)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
    at
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
    at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
    at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
    at
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
    at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
    at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
    at
com.ibm.ecm.integration.common.compression.CompressionFilter.doFilter(CompressionFilter.java:55)
    at
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    at
com.ibm.ecm.integration.common.nls.servlet.LocaleFilter.doFilter(LocaleFilter.java:57)
    at
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    at
com.ibm.ecm.integration.common.messageTrace.servlet.MessageTraceFilter.doFilter(MessageTraceFilter.java:84)
    at
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    at
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
    at
com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
    at
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
    at
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)
    at
com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
    at
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
    at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
    at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
    at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
    at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
    at
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
    at
com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
    at
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
    at
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
    at
com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
    at
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1814)


In my test code I set three properties in the property HashMap that I pass
to session.createDocument().  Those properties are
PropertyIds.OBJECT_TYPE_ID, PropertyIds.NAME and PropertyIds.OBJECT_ID.
SessionImpl.createDocument() calls the method
     getBinding().getObjectService().createDocument(getRepositoryId(),
this.objectFactory.convertProperties(properties, null, null,
(versioningState == VersioningState.CHECKEDOUT) ?
CREATE_AND_CHECKOUT_UPDATABILITY : CREATE_UPDATABILITY), (folderId == null)
? null : folderId.getId(),
this.objectFactory.convertContentStream(contentStream), versioningState,
this.objectFactory.convertPolicies(policies),
this.objectFactory.convertAces(addAces),
this.objectFactory.convertAces(removeAces), null);


When I step through the code, the method
this.objectFactory.convertProperties() does not copy the property
PropertyIds.OBJECT_ID to the new list of properties.  This results in the
exception listed above.

So, after that long explanation, my question is, what am I missing in
trying to create an unfiled document?  I am calling the createDocument()
from the session object.  I am passing in null for the Folder attribute of
the createDocument() call.

Any help would be greatly appreciated.

Thanks,
Tom DeBruycker

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message