53 final int buffLen = b.length;
55 if (buffLen == 0 || len == 0) {
60 if (contentSize == 0) {
65 if (off < 0 || off >= buffLen) {
70 if (currentOffset >= contentSize) {
75 int lenToRead = (int) Math.min(contentSize - currentOffset, len);
78 lenToRead = Math.min(lenToRead, buffLen - off);
86 retBuf =
new byte[lenToRead];
89 final int lenRead = content.read(retBuf, currentOffset, lenToRead);
91 if (lenRead == 0 || lenRead == -1) {
95 currentOffset += lenRead;
99 System.arraycopy(retBuf, 0, b, off, lenRead);
105 throw new ReadContentInputStreamException(String.format(
"Error reading file '%s' (id=%d) at offset %d.", content.getName(), content.getId(), currentOffset), ex);