From 48c35edfd2e65bbc4229d287e808c98b03b04544 Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Mon, 15 Jun 2015 15:48:22 -0400 Subject: [PATCH] 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 --- .../jgit/transport/PushCertificateParser.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java index ccc82da64..e302c0db4 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PushCertificateParser.java @@ -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); } }