commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ma...@apache.org
Subject svn commit: r899186 [18/43] - in /websites/production/commons/content/proper/commons-pool: cobertura/ cobertura/js/ css/ guide/ js/ testapidocs/ testapidocs/org/apache/commons/pool2/ testapidocs/org/apache/commons/pool2/impl/
Date Tue, 25 Feb 2014 19:23:45 GMT
Modified: websites/production/commons/content/proper/commons-pool/cobertura/org.apache.commons.pool2.impl.DefaultPooledObject.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/cobertura/org.apache.commons.pool2.impl.DefaultPooledObject.html (original)
+++ websites/production/commons/content/proper/commons-pool/cobertura/org.apache.commons.pool2.impl.DefaultPooledObject.html Tue Feb 25 19:23:44 2014
@@ -12,561 +12,561 @@
 <div class="separator">&nbsp;</div>
 <table class="report">
 <thead><tr>  <td class="heading">Classes in this File</td>  <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td>  <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td>  <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
-  <tr><td><a href="org.apache.commons.pool2.impl.DefaultPooledObject.html">DefaultPooledObject</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">85%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:85px"><span class="text">75/88</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">80%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:80px"><span class="text">24/30</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.9583333333333333;</span>1.958</td></tr
-  <tr><td><a href="org.apache.commons.pool2.impl.DefaultPooledObject.html">DefaultPooledObject$AbandonedObjectCreatedException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">8/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.9583333333333333;</span>1.958</td></tr
+  <tr><td><a href="org.apache.commons.pool2.impl.DefaultPooledObject.html">DefaultPooledObject</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">85%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:85px"><span class="text">75/88</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">80%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:80px"><span class="text">24/30</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.9583333333333333;</span>1.958</td></tr>
+  <tr><td><a href="org.apache.commons.pool2.impl.DefaultPooledObject.html">DefaultPooledObject$AbandonedObjectCreatedException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">8/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.9583333333333333;</span>1.958</td></tr
 >
 
 </table>
 <div class="separator">&nbsp;</div>
-<table cellspacing="0" cellpadding="0" class="src"
-<tr>  <td class="numLine">&nbsp;1</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">/*</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;2</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;3</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;4</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * this work for additional information regarding copyright ownership.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;5</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;6</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * (the "License"); you may not use this file except in compliance with</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;7</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * the License.  You may obtain a copy of the License at</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;8</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;9</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;10</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;11</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;12</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;13</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;14</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * See the License for the specific language governing permissions and</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;15</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * limitations under the License.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;16</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;17</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="keyword">package</span> org.apache.commons.pool2.impl;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;18</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;19</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.io.PrintWriter;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;20</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.text.SimpleDateFormat;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;21</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Date;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;22</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Deque;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;23</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;24</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.commons.pool2.PooledObject;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;25</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.commons.pool2.PooledObjectState;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;26</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.commons.pool2.TrackedUse;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;27</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;28</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;29</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * This wrapper is used to track the additional information, such as state, for</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;30</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * the pooled objects.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;31</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * &lt;p&gt;</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;32</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * This class is intended to be thread-safe.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;33</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;34</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * @param &lt;T&gt; the type of object in the pool</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;35</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;36</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * @version $Revision: $</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;37</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;38</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> * @since 2.0</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;39</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;40</td>  <td class="nbHitsCovered">&nbsp;1947</td>  <td class="src"><pre class="src">&nbsp;<span class="keyword">public</span> <span class="keyword">class</span> DefaultPooledObject&lt;T&gt; <span class="keyword">implements</span> PooledObject&lt;T&gt; {</pre></td></tr
-<tr>  <td class="numLine">&nbsp;41</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;42</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">final</span> T object;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;43</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> PooledObjectState state = PooledObjectState.IDLE; <span class="comment">// @GuardedBy("this") to ensure transitions are valid</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;44</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">long</span> createTime = System.currentTimeMillis();</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;45</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">long</span> lastBorrowTime = createTime;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;46</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">long</span> lastUseTime = createTime;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;47</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">long</span> lastReturnTime = createTime;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;48</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">boolean</span> logAbandoned = <span class="keyword">false</span>;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;49</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> Exception borrowedBy = <span class="keyword">null</span>;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;50</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> Exception usedBy = <span class="keyword">null</span>;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;51</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">long</span> borrowedCount = 0;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;52</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;53</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;54</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Create a new instance that wraps the provided object so that the pool can</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;55</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * track the state of the pooled object.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;56</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     *</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;57</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @param object The object to wrap</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;58</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;59</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> DefaultPooledObject(T object) {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;60</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">this</span>.object = object;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;61</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;62</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;63</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;64</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> T getObject() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;65</td>  <td class="nbHitsCovered">&nbsp;115894</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> object;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;66</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;67</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;68</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;69</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getCreateTime() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;70</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> createTime;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;71</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;72</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;73</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;74</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getActiveTimeMillis() {</pre></td></tr
-<tr>  <td class="numLine">&nbsp;75</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">// Take copies to avoid threading issues</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;76</td>  <td class="nbHitsCovered">&nbsp;28266</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">long</span> rTime = lastReturnTime;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;77</td>  <td class="nbHitsCovered">&nbsp;28266</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">long</span> bTime = lastBorrowTime;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;78</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;79</td>  <td class="nbHitsUncovered"><a title="Line 79: Conditional coverage 50% (1/2).">&nbsp;28266</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 79: Conditional coverage 50% (1/2).">        <span class="keyword">if</span> (rTime &gt; bTime) {</a></span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;80</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            <span class="keyword">return</span> rTime - bTime;</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;81</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        } <span class="keyword">else</span> {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;82</td>  <td class="nbHitsCovered">&nbsp;28266</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> System.currentTimeMillis() - bTime;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;83</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;84</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;85</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;86</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;87</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getIdleTimeMillis() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;88</td>  <td class="nbHitsCovered">&nbsp;62917</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> System.currentTimeMillis() - lastReturnTime;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;89</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;90</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;91</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;92</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getLastBorrowTime() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;93</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> lastBorrowTime;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;94</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;95</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;96</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;97</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getLastReturnTime() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;98</td>  <td class="nbHitsCovered">&nbsp;3898</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> lastReturnTime;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;99</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;100</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;101</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;102</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Get the number of times this object has been borrowed.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;103</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @return The number of times this object has been borrowed.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;104</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @since 2.1</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;105</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;106</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getBorrowedCount() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;107</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        <span class="keyword">return</span> borrowedCount;</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;108</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;109</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;110</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;111</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Return an estimate of the last time this object was used.  If the class</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;112</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * of the pooled object implements {@link TrackedUse}, what is returned is</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;113</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * the maximum of {@link TrackedUse#getLastUsed()} and</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;114</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * {@link #getLastBorrowTime()}; otherwise this method gives the same</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;115</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * value as {@link #getLastBorrowTime()}.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;116</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     *</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;117</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @return the last time this object was used</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;118</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;119</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;120</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getLastUsedTime() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;121</td>  <td class="nbHitsCovered"><a title="Line 121: Conditional coverage 100% (2/2).">&nbsp;229</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 121: Conditional coverage 100% (2/2).">        <span class="keyword">if</span> (object <span class="keyword">instanceof</span> TrackedUse) {</a></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;122</td>  <td class="nbHitsCovered">&nbsp;227</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> Math.max(((TrackedUse) object).getLastUsed(), lastUseTime);</pre></td></tr
-<tr>  <td class="numLine">&nbsp;123</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        } <span class="keyword">else</span> {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;124</td>  <td class="nbHitsCovered">&nbsp;2</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> lastUseTime;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;125</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;126</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;127</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;128</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;129</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">int</span> compareTo(PooledObject&lt;T&gt; other) {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;130</td>  <td class="nbHitsCovered">&nbsp;1947</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">final</span> <span class="keyword">long</span> lastActiveDiff = <span class="keyword">this</span>.getLastReturnTime() - other.getLastReturnTime();</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;131</td>  <td class="nbHitsCovered"><a title="Line 131: Conditional coverage 100% (2/2).">&nbsp;1947</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 131: Conditional coverage 100% (2/2).">        <span class="keyword">if</span> (lastActiveDiff == 0) {</a></pre></td></tr
-<tr>  <td class="numLine">&nbsp;132</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            <span class="comment">// Make sure the natural ordering is broadly consistent with equals</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;133</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            <span class="comment">// although this will break down if distinct objects have the same</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;134</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            <span class="comment">// identity hash code.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;135</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            <span class="comment">// see java.lang.Comparable Javadocs</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;136</td>  <td class="nbHitsCovered">&nbsp;1681</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> System.identityHashCode(<span class="keyword">this</span>) - System.identityHashCode(other);</pre></td></tr
-<tr>  <td class="numLine">&nbsp;137</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;138</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">// handle int overflow</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;139</td>  <td class="nbHitsCovered">&nbsp;266</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> (<span class="keyword">int</span>)Math.min(Math.max(lastActiveDiff, Integer.MIN_VALUE), Integer.MAX_VALUE);</pre></td></tr
-<tr>  <td class="numLine">&nbsp;140</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;141</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;142</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;143</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> String toString() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;144</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        StringBuilder result = <span class="keyword">new</span> StringBuilder();</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;145</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        result.append(<span class="string">"Object: "</span>);</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;146</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        result.append(object.toString());</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;147</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        result.append(<span class="string">", State: "</span>);</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;148</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        <span class="keyword">synchronized</span> (<span class="keyword">this</span>) {</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;149</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            result.append(state.toString());</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;150</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        }</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;151</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        <span class="keyword">return</span> result.toString();</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;152</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">// TODO add other attributes</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;153</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;154</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;155</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;156</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">boolean</span> startEvictionTest() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;157</td>  <td class="nbHitsCovered"><a title="Line 157: Conditional coverage 100% (2/2).">&nbsp;17181</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 157: Conditional coverage 100% (2/2).">        <span class="keyword">if</span> (state == PooledObjectState.IDLE) {</a></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;158</td>  <td class="nbHitsCovered">&nbsp;17173</td>  <td class="src"><pre class="src">&nbsp;            state = PooledObjectState.EVICTION;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;159</td>  <td class="nbHitsCovered">&nbsp;17173</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;160</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;161</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;162</td>  <td class="nbHitsCovered">&nbsp;8</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;163</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;164</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;165</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;166</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">boolean</span> endEvictionTest(</pre></td></tr
-<tr>  <td class="numLine">&nbsp;167</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            Deque&lt;PooledObject&lt;T&gt;&gt; idleQueue) {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;168</td>  <td class="nbHitsCovered"><a title="Line 168: Conditional coverage 100% (2/2).">&nbsp;13600</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 168: Conditional coverage 100% (2/2).">        <span class="keyword">if</span> (state == PooledObjectState.EVICTION) {</a></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;169</td>  <td class="nbHitsCovered">&nbsp;13587</td>  <td class="src"><pre class="src">&nbsp;            state = PooledObjectState.IDLE;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;170</td>  <td class="nbHitsCovered">&nbsp;13587</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;171</td>  <td class="nbHitsUncovered"><a title="Line 171: Conditional coverage 50% (1/2).">&nbsp;13</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 171: Conditional coverage 50% (1/2).">        } <span class="keyword">else</span> <span class="keyword">if</span> (state == PooledObjectState.EVICTION_RETURN_TO_HEAD) {</a></span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;172</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            state = PooledObjectState.IDLE;</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;173</td>  <td class="nbHitsUncovered"><a title="Line 173: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 173: Conditional coverage 0% (0/2).">            <span class="keyword">if</span> (!idleQueue.offerFirst(<span class="keyword">this</span>)) {</a></span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;174</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;                <span class="comment">// TODO - Should never happen</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;175</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;176</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;177</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;178</td>  <td class="nbHitsCovered">&nbsp;13</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;179</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;180</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;181</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;182</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Allocates the object.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;183</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     *</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;184</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @return {@code true} if the original state was {@link PooledObjectState#IDLE IDLE}</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;185</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;186</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;187</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">boolean</span> allocate() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;188</td>  <td class="nbHitsCovered"><a title="Line 188: Conditional coverage 100% (2/2).">&nbsp;32624</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 188: Conditional coverage 100% (2/2).">        <span class="keyword">if</span> (state == PooledObjectState.IDLE) {</a></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;189</td>  <td class="nbHitsCovered">&nbsp;32623</td>  <td class="src"><pre class="src">&nbsp;            state = PooledObjectState.ALLOCATED;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;190</td>  <td class="nbHitsCovered">&nbsp;32623</td>  <td class="src"><pre class="src">&nbsp;            lastBorrowTime = System.currentTimeMillis();</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;191</td>  <td class="nbHitsCovered">&nbsp;32623</td>  <td class="src"><pre class="src">&nbsp;            lastUseTime = lastBorrowTime;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;192</td>  <td class="nbHitsCovered">&nbsp;32623</td>  <td class="src"><pre class="src">&nbsp;            borrowedCount++;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;193</td>  <td class="nbHitsCovered"><a title="Line 193: Conditional coverage 100% (2/2).">&nbsp;32623</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 193: Conditional coverage 100% (2/2).">            <span class="keyword">if</span> (logAbandoned) {</a></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;194</td>  <td class="nbHitsCovered">&nbsp;11</td>  <td class="src"><pre class="src">&nbsp;                borrowedBy = <span class="keyword">new</span> AbandonedObjectCreatedException();</pre></td></tr
-<tr>  <td class="numLine">&nbsp;195</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            }</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;196</td>  <td class="nbHitsCovered">&nbsp;32623</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;197</td>  <td class="nbHitsUncovered"><a title="Line 197: Conditional coverage 50% (1/2).">&nbsp;1</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 197: Conditional coverage 50% (1/2).">        } <span class="keyword">else</span> <span class="keyword">if</span> (state == PooledObjectState.EVICTION) {</a></span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;198</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            <span class="comment">// TODO Allocate anyway and ignore eviction test</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;199</td>  <td class="nbHitsCovered">&nbsp;1</td>  <td class="src"><pre class="src">&nbsp;            state = PooledObjectState.EVICTION_RETURN_TO_HEAD;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;200</td>  <td class="nbHitsCovered">&nbsp;1</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;201</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;202</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">// TODO if validating and testOnBorrow == true then pre-allocate for</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;203</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">// performance</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;204</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;205</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;206</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;207</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;208</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Deallocates the object and sets it {@link PooledObjectState#IDLE IDLE}</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;209</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * if it is currently {@link PooledObjectState#ALLOCATED ALLOCATED}.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;210</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     *</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;211</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @return {@code true} if the state was {@link PooledObjectState#ALLOCATED ALLOCATED}</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;212</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;213</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;214</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">boolean</span> deallocate() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;215</td>  <td class="nbHitsCovered"><a title="Line 215: Conditional coverage 100% (4/4) [each condition: 100%, 100%].">&nbsp;28214</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 215: Conditional coverage 100% (4/4) [each condition: 100%, 100%].">        <span class="keyword">if</span> (state == PooledObjectState.ALLOCATED ||</a></pre></td></tr
-<tr>  <td class="numLine">&nbsp;216</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;                state == PooledObjectState.RETURNING) {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;217</td>  <td class="nbHitsCovered">&nbsp;28213</td>  <td class="src"><pre class="src">&nbsp;            state = PooledObjectState.IDLE;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;218</td>  <td class="nbHitsCovered">&nbsp;28213</td>  <td class="src"><pre class="src">&nbsp;            lastReturnTime = System.currentTimeMillis();</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;219</td>  <td class="nbHitsCovered"><a title="Line 219: Conditional coverage 100% (2/2).">&nbsp;28213</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 219: Conditional coverage 100% (2/2).">            <span class="keyword">if</span> (borrowedBy != <span class="keyword">null</span>) {</a></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;220</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;                borrowedBy = <span class="keyword">null</span>;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;221</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            }</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;222</td>  <td class="nbHitsCovered">&nbsp;28213</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;223</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;224</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;225</td>  <td class="nbHitsCovered">&nbsp;1</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;226</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;227</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;228</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;229</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Sets the state to {@link PooledObjectState#INVALID INVALID}</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;230</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;231</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;232</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">void</span> invalidate() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;233</td>  <td class="nbHitsCovered">&nbsp;7138</td>  <td class="src"><pre class="src">&nbsp;        state = PooledObjectState.INVALID;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;234</td>  <td class="nbHitsCovered">&nbsp;7138</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;235</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;236</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;237</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">void</span> use() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;238</td>  <td class="nbHitsCovered">&nbsp;14</td>  <td class="src"><pre class="src">&nbsp;        lastUseTime = System.currentTimeMillis();</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;239</td>  <td class="nbHitsCovered">&nbsp;14</td>  <td class="src"><pre class="src">&nbsp;        usedBy = <span class="keyword">new</span> Exception(<span class="string">"The last code to use this object was:"</span>);</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;240</td>  <td class="nbHitsCovered">&nbsp;14</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;241</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;242</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;243</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">void</span> printStackTrace(PrintWriter writer) {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;244</td>  <td class="nbHitsCovered">&nbsp;3</td>  <td class="src"><pre class="src">&nbsp;        Exception borrowedByCopy = <span class="keyword">this</span>.borrowedBy;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;245</td>  <td class="nbHitsUncovered"><a title="Line 245: Conditional coverage 50% (1/2).">&nbsp;3</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 245: Conditional coverage 50% (1/2).">        <span class="keyword">if</span> (borrowedByCopy != <span class="keyword">null</span>) {</a></span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;246</td>  <td class="nbHitsCovered">&nbsp;3</td>  <td class="src"><pre class="src">&nbsp;            borrowedByCopy.printStackTrace(writer);</pre></td></tr
-<tr>  <td class="numLine">&nbsp;247</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;248</td>  <td class="nbHitsCovered">&nbsp;3</td>  <td class="src"><pre class="src">&nbsp;        Exception usedByCopy = <span class="keyword">this</span>.usedBy;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;249</td>  <td class="nbHitsCovered"><a title="Line 249: Conditional coverage 100% (2/2).">&nbsp;3</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 249: Conditional coverage 100% (2/2).">        <span class="keyword">if</span> (usedByCopy != <span class="keyword">null</span>) {</a></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;250</td>  <td class="nbHitsCovered">&nbsp;2</td>  <td class="src"><pre class="src">&nbsp;            usedByCopy.printStackTrace(writer);</pre></td></tr
-<tr>  <td class="numLine">&nbsp;251</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;252</td>  <td class="nbHitsCovered">&nbsp;3</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;253</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;254</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;255</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Returns the state of this object.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;256</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @return state</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;257</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;258</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;259</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">synchronized</span> PooledObjectState getState() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;260</td>  <td class="nbHitsCovered">&nbsp;472</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> state;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;261</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;262</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;263</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;264</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Marks the pooled object as abandoned.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;265</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;266</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;267</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">void</span> markAbandoned() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;268</td>  <td class="nbHitsCovered">&nbsp;15</td>  <td class="src"><pre class="src">&nbsp;        state = PooledObjectState.ABANDONED;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;269</td>  <td class="nbHitsCovered">&nbsp;15</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;270</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;271</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;272</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Marks the object as returning to the pool.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;273</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;274</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;275</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">void</span> markReturning() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;276</td>  <td class="nbHitsCovered">&nbsp;36</td>  <td class="src"><pre class="src">&nbsp;        state = PooledObjectState.RETURNING;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;277</td>  <td class="nbHitsCovered">&nbsp;36</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;278</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;279</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;280</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">void</span> setLogAbandoned(<span class="keyword">boolean</span> logAbandoned) {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;281</td>  <td class="nbHitsCovered">&nbsp;13</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">this</span>.logAbandoned = logAbandoned;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;282</td>  <td class="nbHitsCovered">&nbsp;13</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;283</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;284</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;285</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Used to track how an object was obtained from the pool (the stack trace</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;286</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * of the exception will show which code borrowed the object) and when the</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;287</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     * object was borrowed.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;288</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;289</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    <span class="keyword">static</span> <span class="keyword">class</span> AbandonedObjectCreatedException <span class="keyword">extends</span> Exception {</pre></td></tr
-<tr>  <td class="numLine">&nbsp;290</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;291</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">long</span> serialVersionUID = 7398692158058772916L;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;292</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;293</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">/** Date format */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;294</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">//@GuardedBy("this")</span></pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;295</td>  <td class="nbHitsCovered">&nbsp;1</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> SimpleDateFormat format = <span class="keyword">new</span> SimpleDateFormat</pre></td></tr
-<tr>  <td class="numLine">&nbsp;296</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            (<span class="string">"'Pooled object created' yyyy-MM-dd HH:mm:ss Z "</span> +</pre></td></tr
-<tr>  <td class="numLine">&nbsp;297</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;             <span class="string">"'by the following code has not been returned to the pool:'"</span>);</pre></td></tr
-<tr>  <td class="numLine">&nbsp;298</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;299</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">long</span> _createdTime;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;300</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;301</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">/**</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;302</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">         * Create a new instance.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;303</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">         * &lt;p&gt;</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;304</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">         * @see Exception#Exception()</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;305</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;<span class="comment">         */</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;306</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="keyword">public</span> AbandonedObjectCreatedException() {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;307</td>  <td class="nbHitsCovered">&nbsp;11</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">super</span>();</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;308</td>  <td class="nbHitsCovered">&nbsp;11</td>  <td class="src"><pre class="src">&nbsp;            _createdTime = System.currentTimeMillis();</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;309</td>  <td class="nbHitsCovered">&nbsp;11</td>  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;310</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;311</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">// Override getMessage to avoid creating objects and formatting</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;312</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="comment">// dates unless the log message will actually be used.</span></pre></td></tr
-<tr>  <td class="numLine">&nbsp;313</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        @Override</pre></td></tr
-<tr>  <td class="numLine">&nbsp;314</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        <span class="keyword">public</span> String getMessage() {</pre></td></tr
-<tr>  <td class="numLine">&nbsp;315</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;            String msg;</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;316</td>  <td class="nbHitsCovered">&nbsp;3</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">synchronized</span>(format) {</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;317</td>  <td class="nbHitsCovered">&nbsp;3</td>  <td class="src"><pre class="src">&nbsp;                msg = format.format(<span class="keyword">new</span> Date(_createdTime));</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;318</td>  <td class="nbHitsCovered">&nbsp;3</td>  <td class="src"><pre class="src">&nbsp;            }</pre></td></tr
-<tr>  <td class="numLineCover">&nbsp;319</td>  <td class="nbHitsCovered">&nbsp;3</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> msg;</pre></td></tr
-<tr>  <td class="numLine">&nbsp;320</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;321</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr
-<tr>  <td class="numLine">&nbsp;322</td>  <td class="nbHits">&nbsp;</td
-  <td class="src"><pre class="src">&nbsp;}</pre></td></tr
-</table
+<table cellspacing="0" cellpadding="0" class="src">
+<tr>  <td class="numLine">&nbsp;1</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">/*</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;2</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;3</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;4</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * this work for additional information regarding copyright ownership.</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;5</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;6</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * (the "License"); you may not use this file except in compliance with</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;7</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * the License.  You may obtain a copy of the License at</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;8</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;9</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;10</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;11</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;12</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;13</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;14</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * See the License for the specific language governing permissions and</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;15</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * limitations under the License.</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;16</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;17</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="keyword">package</span> org.apache.commons.pool2.impl;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;18</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;19</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.io.PrintWriter;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;20</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.text.SimpleDateFormat;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;21</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Date;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;22</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> java.util.Deque;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;23</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;24</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.commons.pool2.PooledObject;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;25</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.commons.pool2.PooledObjectState;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;26</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="keyword">import</span> org.apache.commons.pool2.TrackedUse;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;27</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;28</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">/**</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;29</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * This wrapper is used to track the additional information, such as state, for</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;30</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * the pooled objects.</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;31</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * &lt;p&gt;</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;32</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * This class is intended to be thread-safe.</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;33</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;34</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * @param &lt;T&gt; the type of object in the pool</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;35</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;36</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * @version $Revision: $</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;37</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> *</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;38</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> * @since 2.0</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;39</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;40</td>  <td class="nbHitsCovered">&nbsp;1947</td>  <td class="src"><pre class="src">&nbsp;<span class="keyword">public</span> <span class="keyword">class</span> DefaultPooledObject&lt;T&gt; <span class="keyword">implements</span> PooledObject&lt;T&gt; {</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;41</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;42</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">final</span> T object;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;43</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> PooledObjectState state = PooledObjectState.IDLE; <span class="comment">// @GuardedBy("this") to ensure transitions are valid</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;44</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">long</span> createTime = System.currentTimeMillis();</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;45</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">long</span> lastBorrowTime = createTime;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;46</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">long</span> lastUseTime = createTime;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;47</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">long</span> lastReturnTime = createTime;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;48</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">boolean</span> logAbandoned = <span class="keyword">false</span>;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;49</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> Exception borrowedBy = <span class="keyword">null</span>;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;50</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> Exception usedBy = <span class="keyword">null</span>;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;51</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">private</span> <span class="keyword">volatile</span> <span class="keyword">long</span> borrowedCount = 0;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;52</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;53</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;54</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Create a new instance that wraps the provided object so that the pool can</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;55</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     * track the state of the pooled object.</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;56</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     *</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;57</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @param object The object to wrap</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;58</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;59</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> DefaultPooledObject(T object) {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;60</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">this</span>.object = object;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;61</td>  <td class="nbHitsCovered">&nbsp;11462</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;62</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;63</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;64</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> T getObject() {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;65</td>  <td class="nbHitsCovered">&nbsp;115894</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> object;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;66</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;67</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;68</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;69</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getCreateTime() {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;70</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> createTime;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;71</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;72</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;73</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;74</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getActiveTimeMillis() {</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;75</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;        <span class="comment">// Take copies to avoid threading issues</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;76</td>  <td class="nbHitsCovered">&nbsp;28266</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">long</span> rTime = lastReturnTime;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;77</td>  <td class="nbHitsCovered">&nbsp;28266</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">long</span> bTime = lastBorrowTime;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;78</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;79</td>  <td class="nbHitsUncovered"><a title="Line 79: Conditional coverage 50% (1/2).">&nbsp;28266</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 79: Conditional coverage 50% (1/2).">        <span class="keyword">if</span> (rTime &gt; bTime) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;80</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            <span class="keyword">return</span> rTime - bTime;</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;81</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;        } <span class="keyword">else</span> {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;82</td>  <td class="nbHitsCovered">&nbsp;28266</td>  <td class="src"><pre class="src">&nbsp;            <span class="keyword">return</span> System.currentTimeMillis() - bTime;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;83</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;        }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;84</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;85</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;86</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;87</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getIdleTimeMillis() {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;88</td>  <td class="nbHitsCovered">&nbsp;62917</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> System.currentTimeMillis() - lastReturnTime;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;89</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;90</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;91</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;92</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getLastBorrowTime() {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;93</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> lastBorrowTime;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;94</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;95</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;96</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    @Override</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;97</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getLastReturnTime() {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;98</td>  <td class="nbHitsCovered">&nbsp;3898</td>  <td class="src"><pre class="src">&nbsp;        <span class="keyword">return</span> lastReturnTime;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;99</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;100</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;101</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;102</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Get the number of times this object has been borrowed.</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;103</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @return The number of times this object has been borrowed.</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;104</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     * @since 2.1</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;105</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     */</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;106</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">public</span> <span class="keyword">long</span> getBorrowedCount() {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;107</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        <span class="keyword">return</span> borrowedCount;</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;108</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;109</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;110</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="comment">/**</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;111</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;<span class="comment">     * Return an estimate of the last time this object was used.  If the class</span></pre></td></tr>

[... 355 lines stripped ...]


Mime
View raw message