1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.http;
19
20 import java.io.File;
21 import java.io.IOException;
22
23 import javax.servlet.ServletException;
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletResponse;
26
27 import org.apache.commons.logging.Log;
28 import org.apache.commons.logging.LogFactory;
29 import org.mortbay.jetty.servlet.DefaultServlet;
30
31
32
33
34 public class ProfileOutputServlet extends DefaultServlet {
35 private static final long serialVersionUID = 1L;
36 private static final Log LOG = LogFactory.getLog(ProfileOutputServlet.class);
37 private static final int REFRESH_PERIOD = 2;
38
39 @Override
40 protected void doGet(final HttpServletRequest req, final HttpServletResponse resp)
41 throws ServletException, IOException {
42 String absoluteDiskPath = getServletContext().getRealPath(req.getPathInfo());
43 File requestedFile = new File(absoluteDiskPath);
44
45
46
47 if (requestedFile.length() < 100) {
48 LOG.info(requestedFile + " is incomplete. Sending auto-refresh header.");
49 resp.setHeader("Refresh", REFRESH_PERIOD + "," + req.getRequestURI());
50 resp.getWriter().write("This page will be auto-refreshed every " + REFRESH_PERIOD +
51 " seconds until the output file is ready.");
52 } else {
53 super.doGet(req, resp);
54 }
55 }
56 }