+++ /dev/null
-<html>
-<head>
-<title>tests coverage</title>
-<link rel ="stylesheet" type="text/css" href="../../../style.css" title="Style">
-<script type="text/javascript" src="../../../sorttable.js"></script>
-<script type="text/javascript">
- targetPage = "" + window.location.search;
- if (targetPage != "" && targetPage != "undefined")
- targetPage = targetPage.substring(1);
- if (targetPage.indexOf(":") != -1 || (targetPage != "" && !validURL(targetPage)))
- targetPage = "undefined";
- function validURL(url) {
- var pos = url.indexOf(".html");
- if (pos == -1 || pos != url.length - 5)
- return false;
- var allowNumber = false;
- var allowSep = false;
- var seenDot = false;
- for (var i = 0; i < url.length - 5; i++) {
- var ch = url.charAt(i);
- if ('a' <= ch && ch <= 'z' ||
- 'A' <= ch && ch <= 'Z' ||
- ch == '$' ||
- ch == '_') {
- allowNumber = true;
- allowSep = true;
- } else if ('0' <= ch && ch <= '9' ||
- ch == '-') {
- if (!allowNumber)
- return false;
- } else if (ch == '/' || ch == '.') {
- if (!allowSep)
- return false;
- allowNumber = false;
- allowSep = false;
- if (ch == '.')
- seenDot = true;
- if (ch == '/' && seenDot)
- return false;
- } else {
- return false;
- }
- }
- return true;
- }
- function loadFrames() {
- if (targetPage != "" && targetPage != "undefined")
- top.classFrame.location = top.targetPage;
- }
-</script>
-</head>
-<body>
-<table>
-<tr>
-<td>
-<a href="../../../index.html?net/jaekl/frank/ViewSchedule.html" target="_top">Frames</a>
-<a href="ViewSchedule.html" target="_top">No Frames</a>
-</td>
-</tr>
-</table>
-<p>
- <table cellspacing="0" cellpadding="0"class="report">
- <tr class="report">
- <th class="report"> </th>
- <th class="report">%method</th>
- <th class="report">%block</th>
- <th class="report">%branch</th>
- <th class="report">%line</th>
- </tr>
- <tr class="report">
- <td class="reportText"><span class="text">net.jaekl.frank.ViewSchedule</span></td>
- <td class="reportValue"><table class="percentGraph" cellpadding="0" cellspacing="0" align="right"><tr><td><span class="text"><b>67</b>%(4/6)</span></td><td><table class="percentGraph" cellpadding="0" cellspacing="0"><tr><td class="percentCovered" width=" 67"></td><td class="percentUnCovered" width="33.0"></td></tr></table></td></tr></table></td>
- <td class="reportValue"><table class="percentGraph" cellpadding="0" cellspacing="0" align="right"><tr><td><span class="text"><b>38</b>%(8/21)</span></td><td><table class="percentGraph" cellpadding="0" cellspacing="0"><tr><td class="percentCovered" width=" 38"></td><td class="percentUnCovered" width="62.0"></td></tr></table></td></tr></table></td>
- <td class="reportValue"><table class="percentGraph" cellpadding="0" cellspacing="0" align="right"><tr><td><span class="text"><b>30</b>%(3/10)</span></td><td><table class="percentGraph" cellpadding="0" cellspacing="0"><tr><td class="percentCovered" width=" 30"></td><td class="percentUnCovered" width="70.0"></td></tr></table></td></tr></table></td>
- <td class="reportValue"><table class="percentGraph" cellpadding="0" cellspacing="0" align="right"><tr><td><span class="text"><b>43</b>%(20/46)</span></td><td><table class="percentGraph" cellpadding="0" cellspacing="0"><tr><td class="percentCovered" width=" 43"></td><td class="percentUnCovered" width="57.0"></td></tr></table></td></tr></table></td>
- </tr>
- </table>
- <p>
- <p>
- <table cellspacing="0" cellpadding="0"class="report" id="mcoverage">
- <tr class="report">
- <th class="report">hit count</th>
- <th class="report">method name</th>
- <th class="report">method modifiers</th>
- <th class="report">method signature</th>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">3</span></td>
- <td class="reportText"><span class="text"><a href="#src_19"><init></a></span></td>
- <td class="reportText"><span class="text">[public]</span></td>
- <td class="reportText"><span class="text">void <init>()</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_uncovered"><span class="text">0</span></td>
- <td class="reportText"><span class="text"><a href="#src_63">doGet</a></span></td>
- <td class="reportText"><span class="text">[public]</span></td>
- <td class="reportText"><span class="text">void doGet(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_uncovered"><span class="text">0</span></td>
- <td class="reportText"><span class="text"><a href="#src_48">getLocale</a></span></td>
- <td class="reportText"><span class="text">[]</span></td>
- <td class="reportText"><span class="text">java.util.Locale getLocale(javax.servlet.http.HttpServletRequest)</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">4</span></td>
- <td class="reportText"><span class="text"><a href="#src_28">getParamInt</a></span></td>
- <td class="reportText"><span class="text">[]</span></td>
- <td class="reportText"><span class="text">int getParamInt(javax.servlet.http.HttpServletRequest,java.lang.String)</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">8</span></td>
- <td class="reportText"><span class="text"><a href="#src_39">getParamString</a></span></td>
- <td class="reportText"><span class="text">[]</span></td>
- <td class="reportText"><span class="text">java.lang.String getParamString(javax.servlet.http.HttpServletRequest,java.lang.String)</span></td>
- </tr>
- <tr class="report">
- <td class="reportValue_covered"><span class="text">3</span></td>
- <td class="reportText"><span class="text"><a href="#src_96">writeErrorPage</a></span></td>
- <td class="reportText"><span class="text">[]</span></td>
- <td class="reportText"><span class="text">void writeErrorPage(java.io.PrintWriter,java.lang.Throwable,java.util.Locale)</span></td>
- </tr>
- </table>
- <p>
- <table cellspacing="0" cellpadding="0" class="src">
- <tr>
- <td class="numLine"> 1</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">package</span> net.jaekl.frank;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 2</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 3</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.io.ByteArrayOutputStream;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 4</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.io.FileInputStream;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 5</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.io.IOException;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 6</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.io.PrintStream;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 7</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.io.PrintWriter;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 8</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> java.util.Locale;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 9</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 10</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> javax.servlet.ServletException;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 11</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> javax.servlet.http.HttpServlet;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 12</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> javax.servlet.http.HttpServletRequest;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 13</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> javax.servlet.http.HttpServletResponse;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 14</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 15</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> net.jaekl.frank.octranspo.Server;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 16</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> net.jaekl.frank.octranspo.StopInfo;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 17</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">import</span> net.jaekl.qd.util.ExceptionUtils;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 18</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 19<a name="src_19"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> <span Class="keyword">class</span> ViewSchedule <span Class="keyword">extends</span> HttpServlet {</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 20</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">private</span> <span Class="keyword">static</span> <span Class="keyword">final</span> <span Class="keyword">long</span> serialVersionUID = 1L;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 21</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 22</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">static</span> <span Class="keyword">final</span> String BUNDLE_NAME = <span Class="string">"frank"</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 23</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">static</span> <span Class="keyword">final</span> String STOP = <span Class="string">"stop"</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 24</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">static</span> <span Class="keyword">final</span> String ROUTE = <span Class="string">"route"</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 25</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">static</span> <span Class="keyword">final</span> String LANG = <span Class="string">"lang"</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 26</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 27</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">int</span> getParamInt(HttpServletRequest req, String paramName) {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 28<a name="src_28"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> String valueStr = getParamString(req, paramName);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 29</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">try</span> {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 30</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> Integer.parseInt(valueStr);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 31</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 32</td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">catch</span> (NumberFormatException exc) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 33</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// TODO: Error page</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 34</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> 0;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 35</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 36</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 37</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 38</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> String getParamString(HttpServletRequest req, String paramName) {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 39<a name="src_39"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> String valueStr = req.getParameter(paramName);</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 40</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (<span Class="keyword">null</span> == valueStr|| valueStr.equals(<span Class="string">""</span>)) {</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 41</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// TODO: Error page</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 42</td>
- <td class="nbHitsUncovered"> Block: 1/1 Branch: 1/2 </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> <span Class="keyword">null</span>;</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 43</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 44</td>
- <td class="nbHitsCovered"> Block: 1/1 Branch: 1/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> valueStr;</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 45</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 46</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 47</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> Locale getLocale(HttpServletRequest req) {</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 48<a name="src_48"></a></td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> Locale result = <span Class="keyword">null</span>;</span></pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 49</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> String lang = getParamString(req, LANG);</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 50</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (<span Class="keyword">null</span> != lang) {</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 51</td>
- <td class="nbHitsUncovered"> Block: 0/1 Branch: 0/1 </td>
- <td class="src"><pre class="src"> result = <span Class="keyword">new</span> Locale(lang);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 52</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 53</td>
- <td class="nbHitsUncovered"> Block: 0/1 Branch: 0/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (<span Class="keyword">null</span> == result) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 54</td>
- <td class="nbHitsUncovered"> Block: 0/1 Branch: 0/1 </td>
- <td class="src"><pre class="src"> result = Locale.getDefault();</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 55</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 56</td>
- <td class="nbHitsUncovered"> Block: 0/1 Branch: 0/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">return</span> result;</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 57</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 58</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 59</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> @Override</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 60</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">public</span> <span Class="keyword">void</span> doGet(HttpServletRequest req, HttpServletResponse res)</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 61</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">throws</span> ServletException, IOException</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 62</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 63<a name="src_63"></a></td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> res.setContentType(<span Class="string">"text/html"</span>);</span></pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 64</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> PrintWriter pw = res.getWriter();</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 65</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 66</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> Locale locale = getLocale(req);</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 67</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">int</span> stop = getParamInt(req, STOP);</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 68</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">int</span> route = getParamInt(req, ROUTE);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 69</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 70</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">try</span> {</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 71</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> FileInputStream fis = <span Class="keyword">new</span> FileInputStream(<span Class="string">"apikey.txt"</span>);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 72</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">try</span> {</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 73</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> Server server = <span Class="keyword">new</span> Server(<span Class="string">"192f31d2"</span>, fis);</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 74</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> StopInfo stopInfo = <span Class="keyword">null</span>;</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 75</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 76</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">if</span> (0 == route) {</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 77</td>
- <td class="nbHitsUncovered"> Block: 0/1 Branch: 0/1 </td>
- <td class="src"><pre class="src"> stopInfo = server.getNextTripsForStopAllRoutes(stop);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 78</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 79</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">else</span> {</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 80</td>
- <td class="nbHitsUncovered"> Block: 0/1 Branch: 0/1 </td>
- <td class="src"><pre class="src"> stopInfo = server.getNextTripsForStop(stop, route);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 81</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 82</td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> Schedule schedule = <span Class="keyword">new</span> Schedule(locale);</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 83</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 84</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> schedule.writePage(pw, stopInfo);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 85</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 86</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">finally</span> {</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 87</td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> ExceptionUtils.tryClose(fis);</span></pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 88</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 89</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 90</td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> <span Class="keyword">catch</span> (Throwable t) {</span></pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 91</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> writeErrorPage(pw, t, locale);</pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 92</td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> }</span></pre></td>
- </tr>
- <tr>
- <td class="numLineUnCover"> 93</td>
- <td class="nbHitsUncovered"> Block: 0/1 </td>
- <td class="src"><pre class="src"> }</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 94</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 95</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="keyword">void</span> writeErrorPage(PrintWriter pw, Throwable t, Locale locale) {</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 96<a name="src_96"></a></td>
- <td class="nbHitsCovered"> Block: 1/1 </td>
- <td class="src"><pre class="src"> ByteArrayOutputStream baos = <span Class="keyword">new</span> ByteArrayOutputStream();</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 97</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> PrintStream ps = <span Class="keyword">new</span> PrintStream(baos);</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 98</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> FrankBundle bundle = FrankBundle.getInst(locale);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 99</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 100</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> pw.println(<span Class="string">"<HTML><HEAD><TITLE>"</span> + </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 101</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> bundle.get(FrankBundle.FRANK) + <span Class="string">": "</span> +</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 102</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> bundle.get(FrankBundle.ERROR_PAGE) + </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 103</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="string">"</TITLE></HEAD>"</span>);</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 104</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> pw.println(<span Class="string">"<BODY><H1>"</span> +</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 105</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> bundle.get(FrankBundle.FRANK) + <span Class="string">": "</span> +</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 106</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> bundle.get(FrankBundle.UNEXPECTED_ERROR) + </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 107</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="string">"</H1><P><PRE>"</span>);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 108</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 109</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// Note that, if we cared about security, we would log this stack trace to a</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 110</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// server log, and only report a cross-reference to the log file back to the </span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 111</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// end user's browser, to avoid potentially exposing internal info that we </span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 112</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// don't want to share.</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 113</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// At least at this point, we don't care (that much), and trade off a </span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 114</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// potential information leak in favour of reducing our code complexity</span></pre></td>
- </tr>
- <tr>
- <td class="numLine"> 115</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span Class="comment">// and the administrator's workload.</span></pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 116</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> t.printStackTrace(ps);</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 117</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> String stackTrace = baos.toString(); </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 118</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> pw.println(stackTrace);</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 119</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 120</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> pw.println(<span Class="string">"</PRE></P></BODY>"</span>);</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 121</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> pw.println(<span Class="string">"</HTML>"</span>);</pre></td>
- </tr>
- <tr>
- <td class="numLineCover"> 122</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- <tr>
- <td class="numLine"> 123</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 124</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td>
- </tr>
- <tr>
- <td class="numLine"> 125</td>
- <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td>
- </tr>
- </table>
-<p>
-<p><table cellpadding="0" cellspacing="0" class="report"> <tr class="report"> <td class="reportText"><span class="text"> Report generated 11/12/14 11:31 PM </span></td> </tr></table>
-</body>
-</html>