From a1bedf08228350733a6dd9c2c8c0c9053efbbcec Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Tue, 5 Jul 2016 13:00:02 -0700 Subject: [PATCH] ReceivePack: catch InvalidObjectIdException while parsing shallow The "shallow $id" parsing can also throw InvalidObjectIdException, just like parseCommand. Move it into its own method with a proper try-catch block to convert to the checked PackProtocolException. Change-Id: I6839b95f0bc4fbf4d2c213331ebb9bd24ab2af65 --- .../org/eclipse/jgit/transport/BaseReceivePack.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java index 9792df4d1a..f4eef5f48e 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java @@ -1093,7 +1093,7 @@ public abstract class BaseReceivePack { } if (line.length() >= 48 && line.startsWith("shallow ")) { //$NON-NLS-1$ - clientShallowCommits.add(ObjectId.fromString(line.substring(8, 48))); + parseShallow(line.substring(8, 48)); continue; } @@ -1133,6 +1133,16 @@ public abstract class BaseReceivePack { } } + private void parseShallow(String idStr) throws PackProtocolException { + ObjectId id; + try { + id = ObjectId.fromString(idStr); + } catch (InvalidObjectIdException e) { + throw new PackProtocolException(e.getMessage(), e); + } + clientShallowCommits.add(id); + } + static ReceiveCommand parseCommand(String line) throws PackProtocolException { if (line == null || line.length() < 83) { throw new PackProtocolException( -- 2.39.5