Hi Florian, I did not modify any code from the downloaded war file, just modify the "repository.properties" file pointing to our backend CMIS server and then use workbench to test.
>From temp folder, I can see a "MIME*.tmp" with the same size is created, it >seems not a permission issue. After digging further, I guess I know what happened: by default AtomEntryParser.java set max_stream_length = 10MB private static final long MAX_STREAM_LENGTH = 10 * 1024 * 1024; When create document with a bigger (more than 10MB) file via Atompub from workbench, it base64 encoded the content, but exceed the limit, so somehow it returned a weird error when client using web service binding, but when client using atom binding from the bridge, I got below errors which I think it is the real error: org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException: Limit exceeded! at org.apache.chemistry.opencmis.server.shared.CappedInputStream.checkLength(CappedInputStream.java:71) at org.apache.chemistry.opencmis.server.shared.CappedInputStream.read(CappedInputStream.java:107) at java.io.FilterInputStream.read(FilterInputStream.java:116) So I changed my code logic to "set document first, then set content stream later", by this approach, I was able to upload very big files (200MB) via the bridge (using soap to atom forward) Thanks Wentao -----Original Message----- From: Florian Müller [mailto:f...@apache.org] Sent: 2014, September 13 9:18 AM To: dev@chemistry.apache.org Cc: Lu, Wentao Subject: Re: "Stream already closed" error when upload a big file through OpenCMIS bridge Hi Wentao, There could be many reasons. Are you processing the stream in the bridge somehow or do you just forward the request? Big documents are buffered on disk. Is your temp directory writable for the bridge? - Florian > Hi, > > I am testing OpenCMIS bridge 0.10. Client side uses soap to call > "createDocument" and we setup OpenCMIS bridge to convert the soap request to > atompub to our backend CMIS server (IBM CMIS). > > It works fine with small document, but failed when I tried a 10MB file. It > works if I test directly to backend CMIS server. > Below is the error get from SOAPUI: > > <S:Detail> > <cmisFault:cmisFault > xmlns:ns2="http://docs.oasis-open.org/ns/cmis/core/200908/" > xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/" > xmlns:cmisFault="http://docs.oasis-open.org/ns/cmis/messaging/200908/"> > <type>runtime</type> > <code>0</code> > <message>Cannot access > http://mydev:7002/fncmis/resources/IMM_QA01/ContentFlat/idf_E5A8A3C4-B2F2-4100-9A96-B7429037B58E?versioningState=major: > Stream already closed</message> > <stacktrace:stacktrace > xmlns="http://chemistry.apache.org/opencmis/exception" > xmlns:stacktrace="http://chemistry.apache.org/opencmis/exception">org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: > Cannot access > http://mydev:7002/fncmis/resources/IMM_QA01/ContentFlat/idf_E5A8A3C4-B2F2-4100-9A96-B7429037B58E?versioningState=major: > Stream already closed > at > org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invoke(DefaultHttpInvoker.java:224) > at > org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invokePOST(DefaultHttpInvoker.java:63) > at > org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.post(AbstractAtomPubService.java:625) > at > org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.createDocument(ObjectServiceImpl.java:119) > at > org.apache.chemistry.opencmis.bridge.FilterCmisService.createDocument(FilterCmisService.java:201) > at > org.apache.chemistry.opencmis.server.support.CmisServiceWrapper.createDocument(CmisServiceWrapper.java:719) > at > org.apache.chemistry.opencmis.server.impl.webservices.ObjectService.createDocument(ObjectService.java:84) > at sun.reflect.GeneratedMethodAccessor420.invoke(Unknown > Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) > at java.lang.reflect.Method.invoke(Method.java:600) > at > com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246) > at > com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151) > at > com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:268) > at > com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100) > at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:866) > at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:815) > at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:778) > at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:680) > at > com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:403) > at > com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:532) > at > com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:253) > at > com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140) > at > com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129) > at > com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160) > at > com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75) > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > at > org.apache.chemistry.opencmis.server.impl.webservices.CmisWebServicesServlet.service(CmisWebServicesServlet.java:167) > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) > at > weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) > at > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) > at > weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) > at > weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) > at > weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) > at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) > at > weblogic.work.ExecuteThread.run(ExecuteThread.java:176) > Caused by: java.lang.IllegalStateException: Stream already closed > at java.lang.Throwable.<init>(Throwable.java:67) > at > org.jvnet.mimepull.DataHead$ReadMultiStream.fetch(DataHead.java:231) > at > org.jvnet.mimepull.DataHead$ReadMultiStream.read(DataHead.java:207) > at > java.io.BufferedInputStream.fill(BufferedInputStream.java:230) > at > java.io.BufferedInputStream.read(BufferedInputStream.java:249) > at > org.apache.chemistry.opencmis.commons.impl.Base64$InputStream.read(Base64.java:1671) > at > org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomEntryWriter.writeContent(AtomEntryWriter.java:241) > at > org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomEntryWriter.write(AtomEntryWriter.java:181) > at > org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl$1.write(ObjectServiceImpl.java:121) > at > org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invoke(DefaultHttpInvoker.java:192) > ... 40 more</stacktrace:stacktrace> > </cmisFault:cmisFault> > </S:Detail> > > I am not sure if this related with mimepull version, I tried to replace > mimepull 1.3 jar to mimepull 1.9.4, but still get the same error. > > Any ideas? > > Thanks > Wentao > ________________________________ > This email and its attachments are intended solely for the personal use of > the individual or entity named above. Any use of this communication by an > unintended recipient is strictly prohibited. If you have received this email > in error, any publication, use, reproduction, disclosure or dissemination of > its contents is strictly prohibited. Please immediately delete this message > and its attachments from your computer and servers. We would also appreciate > if you would contact us by a collect call or return email to notify us of > this error. Thank you for your cooperation. > -BCHydroDisclaimerID5.2.8.1541 >