On second thought, I think that my previous patch can still go wrong for large values in 'position' I think the following patch should work. Kind regards, I hope the email is according to the guidelines for submitting patches, I am new to git, I used 'amend previous commit', I am not sure if that is correct in this case. Ruth Alkema >From 5e7200f02f91d948278fb515be59bfe2db535b66 Mon Sep 17 00:00:00 2001 From: Ruth Alkema <ruth@xxxxxxxxxx> Date: Wed, 11 Mar 2009 16:42:45 +0100 Subject: [PATCH] fix for 'negative position' error Signed-off-by: Ruth Alkema <ruth@xxxxxxxxxx> --- .../src/org/spearce/jgit/lib/WindowCache.java | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java b/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java index 4b7e10d..597ad61 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java @@ -253,7 +253,7 @@ private static synchronized final void getImpl(final WindowCursor curs, releaseMemory(); runClearedWindowQueue(); - wp.allocWindow(curs, id, id << windowSizeShift, wsz); + wp.allocWindow(curs, id, (position >> windowSizeShift) << windowSizeShift, wsz); final ByteWindow<?> e = curs.window; e.chainNext = cache[idx]; cache[idx] = e; -- 1.6.0.6 Shawn O. Pearce wrote: > Ruth Alkema <ruth@xxxxxxxxxx> wrote: >> diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java b/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java >> index 4b7e10d..5340da9 100644 >> --- a/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java >> +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/WindowCache.java >> @@ -253,7 +253,7 @@ private static synchronized final void getImpl(final WindowCursor curs, >> releaseMemory(); >> runClearedWindowQueue(); >> >> - wp.allocWindow(curs, id, id << windowSizeShift, wsz); >> + wp.allocWindow(curs, id, ((long) id) << windowSizeShift, wsz); > > Ouch. > > Thanks for the fix! > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html