]> source.dussan.org Git - jgit.git/commitdiff
UploadPackServlet: Use uploadWithExceptionPropagation 64/152364/2
authorMasaya Suzuki <masayasuzuki@google.com>
Fri, 8 Nov 2019 22:30:29 +0000 (14:30 -0800)
committerMasaya Suzuki <masayasuzuki@google.com>
Mon, 2 Dec 2019 20:11:40 +0000 (12:11 -0800)
As UploadPackErrorHandler's Javadoc says, UploadPackServlet should have
called uploadWithExceptionPropagation and let UploadPackErrorHandler to
handle the exception. Fix UploadPackServlet.

Change-Id: I1f9686495fcf3ef28598ccdff3e6f76a16c8bca3
Signed-off-by: Masaya Suzuki <masayasuzuki@google.com>
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/UploadPackServlet.java
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java

index 54561e0cfcfab72d4c2c42cae163c1b0343097f1..6baab5ddd7a73088590ee41cb50a890e7ec2eadd 100644 (file)
@@ -70,7 +70,9 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import org.eclipse.jgit.annotations.Nullable;
+import org.eclipse.jgit.errors.PackProtocolException;
 import org.eclipse.jgit.http.server.UploadPackErrorHandler.UploadPackRunnable;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.transport.InternalHttpServerGlue;
@@ -212,7 +214,8 @@ class UploadPackServlet extends HttpServlet {
                        rsp.setContentType(UPLOAD_PACK_RESULT_TYPE);
 
                        try {
-                               up.upload(getInputStream(req), out, null);
+                               up.uploadWithExceptionPropagation(getInputStream(req), out,
+                                               null);
                                out.close();
                        } catch (ServiceMayNotContinueException e) {
                                if (e.isOutput()) {
@@ -245,7 +248,9 @@ class UploadPackServlet extends HttpServlet {
                        log(up.getRepository(), e);
                        if (!rsp.isCommitted()) {
                                rsp.reset();
-                               sendError(req, rsp, SC_INTERNAL_SERVER_ERROR);
+                               String msg = e instanceof PackProtocolException ? e.getMessage()
+                                               : null;
+                               sendError(req, rsp, SC_INTERNAL_SERVER_ERROR, msg);
                        }
                }
        }
index 99aa06b17c61092e6705ff89a938b1d25e2f5ce7..b23fd2854761739fa8128c63e5f135783ccd746b 100644 (file)
@@ -1214,7 +1214,7 @@ public class SmartClientSmartServerTest extends AllFactoriesHttpTestCase {
                                                Collections.<ObjectId> emptySet());
                                fail("Successfully served ref with value " + c.getRef(master));
                        } catch (TransportException err) {
-                               assertEquals("internal server error", err.getMessage());
+                               assertEquals("Internal server error", err.getMessage());
                        }
                } finally {
                        noRefServer.tearDown();