]> source.dussan.org Git - jgit.git/commitdiff
Skip logging stack trace on corrupt objects 95/47395/1
authorShawn Pearce <spearce@spearce.org>
Wed, 6 May 2015 23:02:27 +0000 (16:02 -0700)
committerShawn Pearce <spearce@spearce.org>
Wed, 6 May 2015 23:02:27 +0000 (16:02 -0700)
Instead of dumping a full stack trace when a client sends an invalid
commit, record only a short line explaining the attempt:

  Cannot receive Invalid commit c0ff33...: invalid author into /tmp/jgit.git

The text alone is sufficient to explain the problem and the stack
trace does not lend any additional useful information. ObjectChecker
is quite clear about its rejection cases.

Change-Id: Ifc8cf06032489dc6431be1ba66101cf3d4299218

org.eclipse.jgit.http.server/resources/org/eclipse/jgit/http/server/HttpServerText.properties
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/HttpServerText.java
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/ReceivePackServlet.java

index 83c39277c1ed60903658136febfece0ab0e07d79..28432b0d7520f7661575c8e272c802867e892ec9 100644 (file)
@@ -21,6 +21,7 @@ noResolverAvailable=No resolver available
 parameterNotSet=Parameter {0} not set
 pathForParamNotFound={0} (for {1}) not found
 pathNotSupported={0} not supported
+receivedCorruptObject=Cannot receive {0} into {1}
 repositoryAccessForbidden=Git access forbidden
 repositoryNotFound=Git repository not found
 servletAlreadyInitialized=Servlet already initialized
index a8dd1b10c9f3238fa67b6beeb6da06a7c3c42471..dff90a6c8b2ea1e2ada28eb6cb2f7c33bc0d4038 100644 (file)
@@ -76,6 +76,7 @@ public class HttpServerText extends TranslationBundle {
        /***/ public String parameterNotSet;
        /***/ public String pathForParamNotFound;
        /***/ public String pathNotSupported;
+       /***/ public String receivedCorruptObject;
        /***/ public String repositoryAccessForbidden;
        /***/ public String repositoryNotFound;
        /***/ public String servletAlreadyInitialized;
index 9756feb0b0b6c1c770b5e4052f69d3c6d1a22455..cd066b0c74c9dd1d2592d97ae7adfddf4f7ac77c 100644 (file)
@@ -75,6 +75,7 @@ import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.eclipse.jgit.errors.CorruptObjectException;
 import org.eclipse.jgit.errors.UnpackException;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.transport.InternalHttpServerGlue;
@@ -191,6 +192,15 @@ class ReceivePackServlet extends HttpServlet {
 
                        rp.receive(getInputStream(req), out, null);
                        out.close();
+               } catch (CorruptObjectException e ) {
+                       // This should be already reported to the client.
+                       getServletContext().log(MessageFormat.format(
+                                       HttpServerText.get().receivedCorruptObject,
+                                       e.getMessage(),
+                                       ServletUtils.identify(rp.getRepository())));
+                       consumeRequestBody(req);
+                       out.close();
+
                } catch (UnpackException e) {
                        // This should be already reported to the client.
                        log(rp.getRepository(), e.getCause());