Browse Source

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
stable-4.5
Shawn Pearce 8 years ago
parent
commit
a1bedf0822
  1. 12
      org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java

12
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$ if (line.length() >= 48 && line.startsWith("shallow ")) { //$NON-NLS-1$
clientShallowCommits.add(ObjectId.fromString(line.substring(8, 48))); parseShallow(line.substring(8, 48));
continue; 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 { static ReceiveCommand parseCommand(String line) throws PackProtocolException {
if (line == null || line.length() < 83) { if (line == null || line.length() < 83) {
throw new PackProtocolException( throw new PackProtocolException(

Loading…
Cancel
Save