]> source.dussan.org Git - jgit.git/commitdiff
transport: Move exception handler to the caller 56/152356/2
authorMasaya Suzuki <masayasuzuki@google.com>
Fri, 8 Nov 2019 01:40:25 +0000 (17:40 -0800)
committerMasaya Suzuki <masayasuzuki@google.com>
Mon, 2 Dec 2019 20:33:11 +0000 (12:33 -0800)
Move exception handling code to the caller side. This is a preparation
for adding a custom error handler that is similar to UploadPack.

Note that `catch (Throwable t)` will not affect the exception spec since
Java will do an analysis of rethrown exceptions. See
https://docs.oracle.com/javase/8/docs/technotes/guides/language/catch-multiple.html.

Change-Id: I973a63d4b079c2cd1402afb3f2956e18b7d5a00c
Signed-off-by: Masaya Suzuki <masayasuzuki@google.com>
org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java

index c92c370a024f4f59abe172bd28a9168fd51ef70c..8cafe775a399ed737162d6806a83dd763eb090e7 100644 (file)
@@ -1373,15 +1373,9 @@ public class ReceivePack {
                        if (hasCommands()) {
                                readPostCommands(pck);
                        }
-               } catch (PackProtocolException e) {
-                       discardCommands();
-                       fatalError(e.getMessage());
-                       throw e;
-               } catch (InputOverLimitIOException e) {
-                       String msg = JGitText.get().tooManyCommands;
+               } catch (Throwable t) {
                        discardCommands();
-                       fatalError(msg);
-                       throw new PackProtocolException(msg);
+                       throw t;
                }
        }
 
@@ -2180,7 +2174,18 @@ public class ReceivePack {
                        getAdvertisedOrDefaultRefs();
                if (hasError())
                        return;
-               recvCommands();
+
+               try {
+                       recvCommands();
+               } catch (PackProtocolException e) {
+                       fatalError(e.getMessage());
+                       throw e;
+               } catch (InputOverLimitIOException e) {
+                       String msg = JGitText.get().tooManyCommands;
+                       fatalError(msg);
+                       throw new PackProtocolException(msg);
+               }
+
                if (hasCommands()) {
                        Throwable unpackError = null;
                        if (needPack()) {