You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by Jonathan Lee <jo...@gmail.com> on 2011/04/28 21:07:22 UTC
SharePoint Base64 decoding error in OpenCMIS
Hi all
Currently we are trying to use openCMIS 0.3.0 to mount a SharePoint 2010
Repository. We have run into an issue when trying to get the content stream
of the documents. SharePoint 2010 return the stream with Base64 encoding,
and I am aware that
org.apache.chemistry.opencmis.client.bindings.spi.atompub.HttpUtils returns
a Base64.InputStream if the content encoding type is base64. However there
is an error when Base64 is trying to decode the stream. Here is the
exception,
java.lang.ArrayIndexOutOfBoundsException: -19
at
org.apache.chemistry.opencmis.commons.impl.Base64.decode4to3(Base64.java:1048)
at
org.apache.chemistry.opencmis.commons.impl.Base64.access$200(Base64.java:33)
at
org.apache.chemistry.opencmis.commons.impl.Base64$InputStream.read(Base64.java:1766)
at
org.apache.chemistry.opencmis.commons.impl.Base64$InputStream.read(Base64.java:1832)
at java.io.FilterInputStream.read(Unknown Source)
After some debugging I realized the InputStream being decoded is not the
correct stream.
So instead of using the InputStream I get from calling,
*docuemnt.getcontentStream().getStream()*
I did my own Http Get Request
http://
[Server]/_vti_bin/cmis/rest/81c77da7-2ecd-436a-aadd-3cb01b74d55b?getContentStream&objectID=48-512
and called this to get the InputStream
inputStream = new Base64.InputStream(connection.getInputStream());
When I pass the inputStream I acquired through my own method to Base64, The
decoding works!
I am wondering if document.getContentStream().getStream() is returning the
correct stream when retrieving from SharePoint. Can anyone share some
insight on this problem?
Here are some extra information that I think you might want to know.
This is the respond header when we call
http://[Server]/_vti_bin/cmis/rest/81c77da7-2ecd-436a-aadd-3cb01b74d55b?getContentStream&objectID=48-512
This
Cache-ControlprivateContent-Typetext/plain; charset=utf-8Content-Encoding
gzipVaryAccept-EncodingServerMicrosoft-IIS/7.0SPRequestGuid
a8bcfa3a-fced-4149-8553-38f40ebad01dSet-CookieWSS_KeepSessionAuthenticated={774a893e-3944-489d-84b1-b861ed338a6f};
path=/X-SharePointHealthScore5Content-Transfer-Encodingbase64
X-AspNet-Version2.0.50727X-Powered-ByASP.NETMicrosoftSharePointTeamSe...
14.0.0.4762DateThu, 28 Apr 2011 18:28:55 GMTContent-Length1546
This is the response body, which is Base64 encoded
VGhpcyBpcyBhIFRlc3RpbmcgRG9jdW1lbnQNCg0KVGVzdGluZyBPcGVuQ01JUw0KDQpTaGFyZVBvaW50IDIwMTANCg0KSm9uYXRoYW4gTGVl
Any help or insight would be much appreciated!
Thanks
Jonathan Lee