James Moger
2013-11-26 4fcac9d2cbdafb51e3ee9ca3b3da64fd86103174
src/main/java/com/gitblit/LogoServlet.java
@@ -29,30 +29,30 @@
/**
 * Handles requests for logo.png
 *
 *
 * @author James Moger
 *
 *
 */
public class LogoServlet extends HttpServlet {
   private static final long serialVersionUID = 1L;
   private static final long lastModified = System.currentTimeMillis();
   public LogoServlet() {
      super();
   }
   @Override
   protected long getLastModified(HttpServletRequest req) {
      File file = GitBlit.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png");
      if (file.exists()) {
         return file.lastModified();
         return Math.max(lastModified, file.lastModified());
      } else {
         return lastModified;
      }
   }
   @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException {
@@ -65,17 +65,18 @@
            ServletContext context = request.getSession().getServletContext();
            contentType = context.getMimeType(file.getName());
            response.setContentLength((int) file.length());
            response.setDateHeader("Last-Modified", file.lastModified());
            response.setDateHeader("Last-Modified", Math.max(lastModified, file.lastModified()));
            is = new FileInputStream(file);
         } else {
            // default logo
            response.setDateHeader("Last-Modified", lastModified);
            is = getClass().getResourceAsStream("/logo.png");
         }
         }
         if (contentType == null) {
            contentType = "image/png";
         }
         response.setContentType(contentType);
         response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");
         OutputStream os = response.getOutputStream();
         byte[] buf = new byte[4096];
         int bytesRead = is.read(buf);
@@ -87,7 +88,9 @@
      } catch (Exception e) {
         e.printStackTrace();
      } finally {
         is.close();
         if(is != null) {
            is.close();
         }
      }
   }
}