You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Stefan Guggisberg (JIRA)" <ji...@apache.org> on 2014/01/16 15:57:27 UTC

[jira] [Created] (OAK-1331) MicroKernel API: clarify semantics of `read` method

Stefan Guggisberg created OAK-1331:
--------------------------------------

             Summary: MicroKernel API: clarify semantics of `read` method
                 Key: OAK-1331
                 URL: https://issues.apache.org/jira/browse/OAK-1331
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: mongomk, segmentmk
            Reporter: Stefan Guggisberg
             Fix For: 0.15


the javadoc of {{MicroKernel#read}} currently states that 

{quote}
An attempt is made to read as many as {{length}} bytes, but a smaller number may be read.
{quote}

under what conditions a smaller amount might be read is not specified. 

with the current specification an api consumer would either have to know the length of the blob in advance (i.e. by calling  {{MicroKernel#getLength}}) or  would need to call the {{MicroKernel#read}} method twice to make sure that the blob content is fully read. 

i suggest to clarify the contract as follows:

Reads up to {{length}} bytes of data from the specified blob into the given array of bytes where the actual number of bytes read is {{min(length, max(0, blobLength - pos))}}.




--
This message was sent by Atlassian JIRA
(v6.1.5#6160)