buffer.clear();
int r = file.read(buffer);
byte[] header = buffer.array();
if (!(header[0] == 'S' && header[1] == 'V' && header[2] == 'N' && r == 4)) {
SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.FS_CORRUPT, "Malformed svndiff data in representation");
SVNErrorManager.error(err, SVNLogType.FSFS);
}
repState.myVersion = header[3];
repState.myChunkIndex = 0;
repState.myOffset += 4;
/*
* Push this rep onto the list. If it's self-compressed, we're
* done.
*/
result.addLast(repState);
if (repState.myIsDeltaVsEmpty) {
return null;
}
rep.setRevision(repState.myBaseRevision);
rep.setOffset(repState.myBaseOffset);
rep.setSize(repState.myBaseLength);
rep.setTxnId(null);
}
} catch (IOException ioe) {
file.close();
SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, ioe.getLocalizedMessage());
SVNErrorManager.error(err, ioe, SVNLogType.FSFS);
} catch (SVNException svne) {
file.close();
throw svne;
}