private void verifyPack(ProgressMonitor pm, FsckError errors, DfsReader ctx, DfsPackFile pack, ReadableChannel ch) throws IOException, CorruptPackIndexException { FsckPackParser fpp = new FsckPackParser(objdb, ch); fpp.setObjectChecker(objChecker); fpp.overwriteObjectCount(pack.getPackDescription().getObjectCount()); fpp.parse(pm); errors.getCorruptObjects().addAll(fpp.getCorruptObjects()); fpp.verifyIndex(pack.getPackIndex(ctx)); }
/** {@inheritDoc} */ @Override protected int readDatabase(byte[] dst, int pos, int cnt) throws IOException { // read from input instead of database. int n = read(offset, dst, pos, cnt); if (n > 0) { offset += n; } return n; }
int read(long channelPosition, byte[] dst, int pos, int cnt) throws IOException { long block = channelPosition / blockSize; byte[] bytes = readFromChannel(block); if (bytes == null) { return -1; } int offs = (int) (channelPosition - block * blockSize); int bytesToCopy = Math.min(cnt, bytes.length - offs); if (bytesToCopy < 1) { return -1; } System.arraycopy(bytes, offs, dst, pos, bytesToCopy); return bytesToCopy; }
throws CorruptPackIndexException { ObjectIdOwnerMap<ObjFromPack> inPack = new ObjectIdOwnerMap<>(); for (int i = 0; i < getObjectCount(); i++) { PackedObjectInfo entry = getObject(i); inPack.add(new ObjFromPack(entry));
/** {@inheritDoc} */ @Override protected ObjectTypeAndSize seekDatabase(PackedObjectInfo obj, ObjectTypeAndSize info) throws IOException { crc.reset(); offset = obj.getOffset(); return readObjectHeader(info); }
/** * Constructor for FsckPackParser * * @param db * the object database which stores repository's data. * @param channel * readable channel of the pack file. */ public FsckPackParser(ObjectDatabase db, ReadableChannel channel) { super(db, Channels.newInputStream(channel)); this.channel = channel; setCheckObjectCollisions(false); this.crc = new CRC32(); this.blockSize = channel.blockSize() > 0 ? channel.blockSize() : 65536; }
throws CorruptPackIndexException { ObjectIdOwnerMap<ObjFromPack> inPack = new ObjectIdOwnerMap<>(); for (int i = 0; i < getObjectCount(); i++) { PackedObjectInfo entry = getObject(i); inPack.add(new ObjFromPack(entry));
/** {@inheritDoc} */ @Override protected ObjectTypeAndSize seekDatabase(UnresolvedDelta delta, ObjectTypeAndSize info) throws IOException { crc.reset(); offset = delta.getOffset(); return readObjectHeader(info); }
/** * Constructor for FsckPackParser * * @param db * the object database which stores repository's data. * @param channel * readable channel of the pack file. */ public FsckPackParser(ObjectDatabase db, ReadableChannel channel) { super(db, Channels.newInputStream(channel)); this.channel = channel; setCheckObjectCollisions(false); this.crc = new CRC32(); this.blockSize = channel.blockSize() > 0 ? channel.blockSize() : 65536; }
private void verifyPack(ProgressMonitor pm, FsckError errors, DfsReader ctx, DfsPackFile pack, ReadableChannel ch) throws IOException, CorruptPackIndexException { FsckPackParser fpp = new FsckPackParser(objdb, ch); fpp.setObjectChecker(objChecker); fpp.overwriteObjectCount(pack.getPackDescription().getObjectCount()); fpp.parse(pm); errors.getCorruptObjects().addAll(fpp.getCorruptObjects()); fpp.verifyIndex(pack.getPackIndex(ctx)); }
/** {@inheritDoc} */ @Override protected ObjectTypeAndSize seekDatabase(PackedObjectInfo obj, ObjectTypeAndSize info) throws IOException { crc.reset(); offset = obj.getOffset(); return readObjectHeader(info); }
/** {@inheritDoc} */ @Override protected int readDatabase(byte[] dst, int pos, int cnt) throws IOException { // read from input instead of database. int n = read(offset, dst, pos, cnt); if (n > 0) { offset += n; } return n; }
int read(long channelPosition, byte[] dst, int pos, int cnt) throws IOException { long block = channelPosition / blockSize; byte[] bytes = readFromChannel(block); if (bytes == null) { return -1; } int offs = (int) (channelPosition - block * blockSize); int bytesToCopy = Math.min(cnt, bytes.length - offs); if (bytesToCopy < 1) { return -1; } System.arraycopy(bytes, offs, dst, pos, bytesToCopy); return bytesToCopy; }
/** {@inheritDoc} */ @Override protected ObjectTypeAndSize seekDatabase(UnresolvedDelta delta, ObjectTypeAndSize info) throws IOException { crc.reset(); offset = delta.getOffset(); return readObjectHeader(info); }