Browse Source

IndexPack: Use byte limited form of getCachedBytes

Currently our algorithm requires that we have the delta base as
a contiguous byte array... but getCachedBytes() might not work
if the object is considered to be large by its underlying loader.
Use the limited form to obtain the object as a byte array instead.

Change-Id: I33f12a8811cb6a4a67396174733f209db8119b42
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
tags/v0.9.1
Shawn O. Pearce 13 years ago
parent
commit
a3945d1bc8
1 changed files with 2 additions and 2 deletions
  1. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java View File

@@ -613,7 +613,7 @@ public class IndexPack {
missing.add(baseId);
continue;
}
final byte[] data = ldr.getCachedBytes();
final byte[] data = ldr.getCachedBytes(Integer.MAX_VALUE);
final int typeCode = ldr.getType();
final PackedObjectInfo oe;

@@ -870,7 +870,7 @@ public class IndexPack {

try {
final ObjectLoader ldr = readCurs.open(id, type);
final byte[] existingData = ldr.getCachedBytes();
final byte[] existingData = ldr.getCachedBytes(Integer.MAX_VALUE);
if (!Arrays.equals(data, existingData)) {
throw new IOException(MessageFormat.format(JGitText.get().collisionOn, id.name()));
}

Loading…
Cancel
Save