From: Shawn Pearce Date: Tue, 5 Jul 2016 20:00:02 +0000 (-0700) Subject: ReceivePack: catch InvalidObjectIdException while parsing shallow X-Git-Tag: v4.5.0.201609210915-r~87 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a1bedf08228350733a6dd9c2c8c0c9053efbbcec;p=jgit.git 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 --- 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(