James Moger
2012-01-11 d351343964ff75a9d8bc4c0651b7df4ddac40287
Fixed some null pointer bugs in the pages servlet
1 files modified
44 ■■■■ changed files
src/com/gitblit/PagesServlet.java 44 ●●●● patch | view | raw | blame | history
src/com/gitblit/PagesServlet.java
@@ -159,27 +159,47 @@
                }
            } else {
                // specific resource
                String contentType = context.getMimeType(resource);
                if (contentType.startsWith("text")) {
                    content = JGitUtils.getStringContent(r, tree, resource).getBytes(
                            Constants.ENCODING);
                } else {
                    content = JGitUtils.getByteContent(r, tree, resource);
                try {
                    String contentType = context.getMimeType(resource);
                    if (contentType == null) {
                        contentType = "text/plain";
                    }
                    if (contentType.startsWith("text")) {
                        content = JGitUtils.getStringContent(r, tree, resource).getBytes(
                                Constants.ENCODING);
                    } else {
                        content = JGitUtils.getByteContent(r, tree, resource);
                    }
                    response.setContentType(contentType);
                } catch (Exception e) {
                }
                response.setContentType(contentType);
            }
            // no content, try custom 404 page
            if (ArrayUtils.isEmpty(content)) {
                content = JGitUtils.getStringContent(r, tree, "404.html").getBytes(
                        Constants.ENCODING);
                String custom404 = JGitUtils.getStringContent(r, tree, "404.html");
                if (!StringUtils.isEmpty(custom404)) {
                    content = custom404.getBytes(Constants.ENCODING);
                }
                // still no content
                if (ArrayUtils.isEmpty(content)) {
                    content = (MessageFormat.format(
                    String str = MessageFormat.format(
                            "# Error\nSorry, the requested resource **{0}** was not found.",
                            resource)).getBytes(Constants.ENCODING);
                    resource = "404.mkd";
                            resource);
                    content = MarkdownUtils.transformMarkdown(str).getBytes(Constants.ENCODING);
                }
                try {
                    // output the content
                    logger.warn("Pages 404: " + resource);
                    response.setStatus(HttpServletResponse.SC_NOT_FOUND);
                    response.getOutputStream().write(content);
                    response.flushBuffer();
                } catch (Throwable t) {
                    logger.error("Failed to write page to client", t);
                }
                return;
            }
            // check to see if we should transform markdown files