[
https://issues.apache.org/jira/browse/CMIS-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Florian Müller reassigned CMIS-619:
-----------------------------------
Assignee: Florian Müller
> Wrong stream reading in DotCMIS.Binding.AtomPub.AtomEntryWriter.WriteContent()
> ------------------------------------------------------------------------------
>
> Key: CMIS-619
> URL: https://issues.apache.org/jira/browse/CMIS-619
> Project: Chemistry
> Issue Type: Bug
> Components: dotcmis
> Reporter: Denis Andreev
> Assignee: Florian Müller
>
> The problem is that the method "Stream.Read() or BinaryReader.Read()" may
> read less amount of bytes than the provided buffer size when the end of the
> stream has not been reached yet.
> For example.
> The file "File1.txt" of size 30K is requested by HttpWebRequest to download
> from a server and transfer it to Alfresco.
> HttpWebRequest returns System.Net.ConnectStream.
> The buffer size to read from stream is 65K.
> In the current code the first read operation returns 4K from the stream and
> the condition "while (BufferSize <= readBytes)" finishes the read cycle.
> The problem can be fixed by the code below:
> using (var br = new BinaryReader(stream))
> {
> var buffer = new byte[BufferSize];
> int readBytes = 0;
> while ((readBytes = br.Read(buffer, 0, BufferSize)) != 0)
> {
> writer.WriteBase64(buffer, 0, readBytes);
> }
> }
--
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