# [PATCH] [JGit] Fix parsing peeled line in packed-ref

2 messages from 2009-03-06 to 2009-03-06. Participants: Daniel Cheng (aka SDiZ), Shawn O. Pearce.
Thread: https://gitlist.dev/t/18174

## Daniel Cheng (aka SDiZ), 2009-03-06 15:25

Subject: [PATCH] [JGit] Fix parsing peeled line in packed-ref
Message-ID: <1236353138-1427-1-git-send-email-j16sdiz+freenet@sdiz.net>
URL: https://gitlist.dev/e/1236353138-1427-1-git-send-email-j16sdiz%2Bfreenet%40sdiz.net

```
When doing a WalkTransport with packed-ref, peeled
line are not handled correctly. This patch fix the
issue.
---
 .../jgit/transport/WalkRemoteObjectDatabase.java   |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
index a4f8961..d8e727b 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
@@ -436,7 +436,7 @@ private void readPackedRefsImpl(final Map<String, Ref> avail,
 			if (line.charAt(0) == '^') {
 				if (last == null)
 					throw new TransportException("Peeled line before ref.");
-				final ObjectId id = ObjectId.fromString(line + 1);
+				final ObjectId id = ObjectId.fromString(line.substring(1));
 				last = new Ref(Ref.Storage.PACKED, last.getName(), last
 						.getObjectId(), id, true);
 				avail.put(last.getName(), last);
-- 
1.6.2.rc2

```

## Shawn O. Pearce, 2009-03-06 15:43

Subject: Re: [PATCH] [JGit] Fix parsing peeled line in packed-ref
Message-ID: <20090306154309.GF16213@spearce.org>
URL: https://gitlist.dev/e/20090306154309.GF16213%40spearce.org
In-Reply-To: <1236353138-1427-1-git-send-email-j16sdiz+freenet@sdiz.net>

```
"Daniel Cheng (aka SDiZ)" <j16sdiz+freenet@gmail.com> wrote:
> When doing a WalkTransport with packed-ref, peeled
> line are not handled correctly. This patch fix the
> issue.

Wow.  That old code was really wrong.  :-)

Signed-off-by?  (See SUBMITTING_PATCHES, "(5) Sign your work")

> diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
> index a4f8961..d8e727b 100644
> --- a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
> +++ b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkRemoteObjectDatabase.java
> @@ -436,7 +436,7 @@ private void readPackedRefsImpl(final Map<String, Ref> avail,
>  			if (line.charAt(0) == '^') {
>  				if (last == null)
>  					throw new TransportException("Peeled line before ref.");
> -				final ObjectId id = ObjectId.fromString(line + 1);
> +				final ObjectId id = ObjectId.fromString(line.substring(1));
>  				last = new Ref(Ref.Storage.PACKED, last.getName(), last

If I'm at fault for that preimage, I should just be put out to
pasture now... before I do any more harm... *sigh*

-- 
Shawn.

```
