James Moger
2013-10-15 e1908933fa9968b11e9ea03d88730aee3140534b
src/main/java/com/gitblit/PagesServlet.java
@@ -18,6 +18,8 @@
import java.io.IOException;
import java.text.MessageFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
@@ -39,9 +41,9 @@
/**
 * Serves the content of a gh-pages branch.
 *
 *
 * @author James Moger
 *
 *
 */
public class PagesServlet extends HttpServlet {
@@ -55,7 +57,7 @@
   /**
    * Returns an url to this servlet for the specified parameters.
    *
    *
    * @param baseURL
    * @param repository
    * @param path
@@ -71,7 +73,7 @@
   /**
    * Retrieves the specified resource from the gh-pages branch of the
    * repository.
    *
    *
    * @param request
    * @param response
    * @throws javax.servlet.ServletException
@@ -139,7 +141,6 @@
            r.close();
            return;
         }
         response.setDateHeader("Last-Modified", JGitUtils.getCommitDate(commit).getTime());
         String [] encodings = GitBlit.getEncodings();
@@ -147,8 +148,13 @@
         byte[] content = null;
         if (StringUtils.isEmpty(resource)) {
            // find resource
            String[] files = { "index.html", "index.htm", "index.mkd" };
            for (String file : files) {
            List<String> markdownExtensions = GitBlit.getStrings(Keys.web.markdownExtensions);
            List<String> extensions = new ArrayList<String>(markdownExtensions.size() + 2);
            extensions.add("html");
            extensions.add("htm");
            extensions.addAll(markdownExtensions);
            for (String ext : extensions){
               String file = "index." + ext;
               String stringContent = JGitUtils.getStringContent(r, tree, file, encodings);
               if(stringContent == null){
                  continue;
@@ -219,6 +225,8 @@
         try {
            // output the content
            response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");
            response.setDateHeader("Last-Modified", JGitUtils.getCommitDate(commit).getTime());
            response.getOutputStream().write(content);
            response.flushBuffer();
         } catch (Throwable t) {