]> source.dussan.org Git - gitblit.git/commitdiff
Add more error checking to blob page
authorJames Moger <james.moger@gitblit.com>
Fri, 29 Mar 2013 14:59:26 +0000 (10:59 -0400)
committerJames Moger <james.moger@gitblit.com>
Fri, 29 Mar 2013 14:59:26 +0000 (10:59 -0400)
releases.moxie
src/main/java/com/gitblit/wicket/GitBlitWebApp.properties
src/main/java/com/gitblit/wicket/pages/BlobPage.java
src/main/java/com/gitblit/wicket/panels/CommitHeaderPanel.java

index 8dac1dcb99487018d01f7be028c94db611a7e368..0598914271c07653c6ec8e6faba19cf0a02bebe4 100644 (file)
@@ -9,6 +9,7 @@ r17: {
        - Raw servlet was insecure. If someone knew the exact repository name and path to a file, the raw blob could be retrieved bypassing security constraints. (issue 198)\r
     fixes:\r
      - Could not reset settings with $ or { characters through Gitblit Manager because they are not properly escaped\r
+        - Added more error checking to blob page\r
         - Fix NPE when getting user's fork without repository list caching (issue 182)\r
         - Fix internal error on folder history links (issue 192)\r
         - Fixed incorrect icon file name for .doc files (issue 200)\r
index 7a2b1bb3e2e205fc4149a548df4fdd646fa791b4..b0d559f6e5aee5178331f94c635eb23813880046 100644 (file)
@@ -444,4 +444,5 @@ gb.excludeFromActivity = exclude from activity page
 gb.isSparkleshared = repository is Sparkleshared\r
 gb.owners = owners\r
 gb.sessionEnded = Session has been closed\r
-gb.closeBrowser = Please close the browser to properly end the session.
\ No newline at end of file
+gb.closeBrowser = Please close the browser to properly end the session.\r
+gb.doesNotExistInTree = {0} does not exist in tree {1}
\ No newline at end of file
index e2b8546b9bcb85454b5be8652fcd84cd0c9d5019..ab0f0f166e95780bcdec602a38270474b7b24cda 100644 (file)
@@ -124,20 +124,39 @@ public class BlobPage extends RepositoryPage {
                                default:\r
                                        // plain text\r
                                        String source = JGitUtils.getStringContent(r, commit.getTree(), blobPath, encodings);\r
-                                       String table = generateSourceView(source, type == 1);\r
+                                       String table;\r
+                                       if (source == null) {\r
+                                               table = missingBlob(blobPath, commit);\r
+                                       } else {\r
+                                               table = generateSourceView(source, type == 1);\r
+                                       }\r
                                        add(new Label("blobText", table).setEscapeModelStrings(false));\r
                                        add(new Image("blobImage").setVisible(false));\r
                                }\r
                        } else {\r
                                // plain text\r
                                String source = JGitUtils.getStringContent(r, commit.getTree(), blobPath, encodings);\r
-                               String table = generateSourceView(source, false);\r
+                               String table;\r
+                               if (source == null) {\r
+                                       table = missingBlob(blobPath, commit);\r
+                               } else {\r
+                                       table = generateSourceView(source, false);\r
+                               }\r
                                add(new Label("blobText", table).setEscapeModelStrings(false));\r
                                add(new Image("blobImage").setVisible(false));\r
                        }\r
                }\r
        }\r
        \r
+       protected String missingBlob(String blobPath, RevCommit commit) {\r
+               StringBuilder sb = new StringBuilder();\r
+               sb.append("<div class=\"alert alert-error\">");\r
+               String pattern = getString("gb.doesNotExistInTree").replace("{0}", "<b>{0}</b>").replace("{1}", "<b>{1}</b>");\r
+               sb.append(MessageFormat.format(pattern, blobPath, commit.getTree().getId().getName()));\r
+               sb.append("</div>");\r
+               return sb.toString();\r
+       }\r
+       \r
        protected String generateSourceView(String source, boolean prettyPrint) {\r
                String [] lines = source.split("\n");\r
                \r
index bb960cca2ddb70b9f530669993d6e463f7f895e5..eb757501dbe5c794c392a4feb986d3fa8857703c 100644 (file)
@@ -33,6 +33,7 @@ public class CommitHeaderPanel extends BasePanel {
                add(new Label("commitid"));\r
                add(new Label("author"));\r
                add(new Label("date"));\r
+               add(new Label("authorAvatar"));\r
        }\r
 \r
        public CommitHeaderPanel(String id, String repositoryName, RevCommit c) {\r