in oss-20190517/src/main/java/com/aliyun/sdk/service/oss20190517/encryption/internal/CipherInputStream.java [61:85]
public int read(byte[] buf, int off, int target_len) throws IOException {
if (curr_pos >= max_pos) {
if (eof)
return -1;
int count = 0;
int len;
do {
if (count > MAX_RETRY)
throw new IOException("exceeded maximum number of attempts to read next chunk of data");
len = nextChunk();
count++;
} while (len == 0);
if (len == -1)
return -1;
}
if (target_len <= 0)
return 0;
int len = max_pos - curr_pos;
if (target_len < len)
len = target_len;
System.arraycopy(bufout, curr_pos, buf, off, len);
curr_pos += len;
return len;
}