From a3945d1bc856322becdc4d1ec8df9013bfef3175 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Mon, 30 Aug 2010 11:01:33 -0700 Subject: [PATCH] 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 --- .../src/org/eclipse/jgit/transport/IndexPack.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java index 2daa105c5..f5cdac988 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java @@ -613,7 +613,7 @@ private void fixThinPack(final ProgressMonitor progress) throws IOException { 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 @@ private void verifySafeObject(final AnyObjectId id, final int type, 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())); }