PushCertificateParser: throw PackProtocolException in more cases

This is the subclass of IOException already thrown by
BaseReceivePack#recvCommands when encountering an invalid value on
the wire. That's what PushCertificateParser is doing too, so use the
same subclass.

Change-Id: I1d323909ffe70757ea56e511556080695b1a0c11
This commit is contained in:
Dave Borowitz 2015-06-15 15:48:22 -04:00
parent 8d0cedf2ec
commit 48c35edfd2
1 changed files with 9 additions and 7 deletions

View File

@ -54,6 +54,7 @@
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.eclipse.jgit.errors.PackProtocolException;
import org.eclipse.jgit.internal.JGitText;
import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.lib.Repository;
@ -183,7 +184,7 @@ private static String parseHeader(PacketLineIn pckIn, String header)
if (s.length() <= header.length()
|| !s.startsWith(header)
|| s.charAt(header.length()) != ' ') {
throw new IOException(MessageFormat.format(
throw new PackProtocolException(MessageFormat.format(
JGitText.get().pushCertificateInvalidHeader, header));
}
return s.substring(header.length() + 1);
@ -214,13 +215,13 @@ public void receiveHeader(PacketLineIn pckIn, boolean stateless)
try {
version = parseHeader(pckIn, VERSION);
if (!version.equals(VERSION_0_1)) {
throw new IOException(MessageFormat.format(
throw new PackProtocolException(MessageFormat.format(
JGitText.get().pushCertificateInvalidFieldValue, VERSION, version));
}
String pusherStr = parseHeader(pckIn, PUSHER);
pusher = RawParseUtils.parsePersonIdent(pusherStr);
if (pusher == null) {
throw new IOException(MessageFormat.format(
throw new PackProtocolException(MessageFormat.format(
JGitText.get().pushCertificateInvalidFieldValue,
PUSHER, pusherStr));
}
@ -228,11 +229,11 @@ public void receiveHeader(PacketLineIn pckIn, boolean stateless)
receivedNonce = parseHeader(pckIn, NONCE);
// An empty line.
if (!pckIn.readString().isEmpty()) {
throw new IOException(
throw new PackProtocolException(
JGitText.get().pushCertificateInvalidHeader);
}
} catch (EOFException eof) {
throw new IOException(
throw new PackProtocolException(
JGitText.get().pushCertificateInvalidHeader, eof);
}
nonceStatus = nonceGenerator != null
@ -264,10 +265,11 @@ public void receiveSignature(PacketLineIn pckIn) throws IOException {
}
signature = sig.toString();
if (!pckIn.readStringRaw().equals(END_CERT)) {
throw new IOException(JGitText.get().pushCertificateInvalidSignature);
throw new PackProtocolException(
JGitText.get().pushCertificateInvalidSignature);
}
} catch (EOFException eof) {
throw new IOException(
throw new PackProtocolException(
JGitText.get().pushCertificateInvalidSignature, eof);
}
}