text: public int read(byte[] dst, int pos, int cnt) throws IOException {try {int n = 0;while (n < cnt) {int r = inf.inflate(dst, pos + n, cnt - n);n += r;if (inf.finished())break;if (inf.needsInput()) {onObjectData(src, buf, p, bAvail);use(bAvail);p = fill(src, 1);inf.setInput(buf, p, bAvail);} else if (r == 0) {throw new CorruptObjectException(MessageFormat.format(JGitText.get().packfileCorruptionDetected,JGitText.get().unknownZlibError));}}actualSize += n;return 0 < n ? n : -1;} catch (DataFormatException dfe) {throw new CorruptObjectException(MessageFormat.format(JGitText.get().packfileCorruptionDetected, dfe.getMessage()));}}