James Moger
2013-11-16 d65a6baca9a20461f976a2455d70eecc7faf2db5
src/main/java/com/gitblit/LogoServlet.java
@@ -27,39 +27,43 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gitblit.manager.IRuntimeManager;
/**
 * 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");
      IRuntimeManager runtimeManager = GitBlit.getManager(IRuntimeManager.class);
      File file = runtimeManager.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png");
      if (file.exists()) {
         return Math.max(lastModified, file.lastModified());
      } else {
         return lastModified;
      }
   }
   @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException {
      InputStream is = null;
      try {
         String contentType = null;
         File file = GitBlit.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png");
         IRuntimeManager runtimeManager = GitBlit.getManager(IRuntimeManager.class);
         File file = runtimeManager.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png");
         if (file.exists()) {
            // custom logo
            ServletContext context = request.getSession().getServletContext();
@@ -71,11 +75,12 @@
            // 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 +92,7 @@
      } catch (Exception e) {
         e.printStackTrace();
      } finally {
         if(is != null) {
         if (is != null) {
            is.close();
         }
      }