linzhixing created CMIS-578:
-------------------------------
Summary: contentStream's length become null on setContentStream
method
Key: CMIS-578
URL: https://issues.apache.org/jira/browse/CMIS-578
Project: Chemistry
Issue Type: Bug
Affects Versions: OpenCMIS 0.6.0
Reporter: linzhixing
I'm developing a CMIS client and server.
Creating a new document and uploading an attachment of a document both work
almost fine,
but uploading has a problem. ContentStream of the attachemnt's length is 0!
-------------------------------------------------------
(A)
//org.apache.chemistry.opencmis.client.bindings.spi.atompub;
//calss ObjectServiceImpl
//setContentStream
//Line:588
// send content
HttpUtils.Response resp = put(url, contentStream.getMimeType(),
headers, new HttpUtils.Output() {
public void write(OutputStream out) throws Exception {
int b;
byte[] buffer = new byte[4096];
while ((b = stream.read(buffer)) > -1) {
out.write(buffer, 0, b);
}
stream.close();
}
});
>>>then
//package org.apache.chemistry.opencmis.client.bindings.spi.http;
//class HttpUtils
//Line:69
public static Response invokePOST(UrlBuilder url, String contentType, Output
writer, BindingSession session) {
return invoke(url, "POST", contentType, null, writer, session, null,
null);
}
public static Response invokePUT(UrlBuilder url, String contentType,
Map<String, String> headers, Output writer,
BindingSession session) {
return invoke(url, "PUT", contentType, headers, writer, session, null,
null);
}
(*invokePUT method is executed when upgrading)
>>>then
(B)
My server's code
----------------
public void setContentStream(CallContext callContext,
Holder<String> objectId, boolean overwriteFlag,
ContentStream contentStream) {
String newAttachmentId = nodeService.createAttachment(
callContext.getUsername(),
millisToCalendar(System.currentTimeMillis()),
contentStream);
Content content = nodeService.get(Document.class,
objectId.getValue());
// TODO use overwriteFlag
content.getAttachments().add(newAttachmentId);
nodeService.update(content);
}
-------------------------------------------------------
Just before (A), the contentStream has non-zero length.
It is our specification that my server's code creates a new document for the
attachement when upgrading, anyway, when the debugger enterd into (B) method,
contentStream already became zero length.
When I create a new document with attached file(not upgrading), invokePOST
method is executed and contentStream has non-zero length even on my server's
part.
So, I guess it would not be a probelm of my developing product's behavior.
invokePUTmethod or such thing has Content' length bug?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira