Modified:
websites/production/turbine/content/fulcrum/fulcrum-pool/cobertura/org.apache.fulcrum.pool.DefaultPoolService.html
==============================================================================
---
websites/production/turbine/content/fulcrum/fulcrum-pool/cobertura/org.apache.fulcrum.pool.DefaultPoolService.html
(original)
+++
websites/production/turbine/content/fulcrum/fulcrum-pool/cobertura/org.apache.fulcrum.pool.DefaultPoolService.html
Tue May 21 03:41:41 2019
@@ -12,9 +12,7 @@
<div class="separator"> </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.fulcrum.pool.DefaultPoolService.html">DefaultPoolService</a></td><td><table
cellpadding="0px" cellspacing="0px" class="percentgraph"><tr
class="percentgraph"><td align="right" class="percentgraph"
width="40">53%</td><td class="percentgraph"><div class="percentgraph"><div
class="greenbar" style="width:53px"><span
class="text">52/98</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">30%</td><td class="percentgraph"><div class="percentgraph"><div
class="greenbar" style="width:30px"><span
class="text">14/46</span></div></div></td></tr></table></td><td
class="value"><span class="hidden">3.1785714285714284;</span>3,179</td></tr>
- <tr><td><a
href="org.apache.fulcrum.pool.DefaultPoolService.html">DefaultPoolService$PoolBuffer</a></td><td><table
cellpadding="0px" cellspacing="0px" class="percentgraph"><tr
class="percentgraph"><td align="right" class="percentgraph"
width="40">16%</td><td class="percentgraph"><div class="percentgraph"><div
class="greenbar" style="width:15px"><span
class="text">7/44</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">4%</td><td class="percentgraph"><div class="percentgraph"><div
class="greenbar" style="width:4px"><span
class="text">1/24</span></div></div></td></tr></table></td><td
class="value"><span class="hidden">3.1785714285714284;</span>3,179</td></tr>
- <tr><td><a
href="org.apache.fulcrum.pool.DefaultPoolService.html">DefaultPoolService$PoolBuffer$Recycler</a></td><td><table
cellpadding="0px" cellspacing="0px" class="percentgraph"><tr
class="percentgraph"><td align="right" class="percentgraph"
width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div
class="greenbar" style="width:0px"><span
class="text">0/14</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">0%</td><td class="percentgraph"><div class="percentgraph"><div
class="greenbar" style="width:0px"><span
class="text">0/18</span></div></div></td></tr></table></td><td
class="value"><span class="hidden">3.1785714285714284;</span>3,179</td></tr>
+ <tr><td><a
href="org.apache.fulcrum.pool.DefaultPoolService.html">DefaultPoolService</a></td><td><table
cellpadding="0px" cellspacing="0px" class="percentgraph"><tr
class="percentgraph"><td align="right" class="percentgraph"
width="40">53%</td><td class="percentgraph"><div class="percentgraph"><div
class="greenbar" style="width:53px"><span
class="text">52/98</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">30%</td><td class="percentgraph"><div class="percentgraph"><div
class="greenbar" style="width:30px"><span
class="text">14/46</span></div></div></td></tr></table></td><td
class="value"><span class="hidden">3.4210526315789473;</span>3.421</td></tr>
</table>
<div class="separator"> </div>
@@ -24,1145 +22,805 @@
<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="comment">/*</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">import</span>
java.util.HashMap;</pre></td></tr>
<tr> <td class="numLine"> 4</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Licensed to
the Apache Software Foundation (ASF) under one</span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 5</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * or more
contributor license agreements. See the NOTICE file</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="comment">/*</span></pre></td></tr>
<tr> <td class="numLine"> 6</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * distributed
with this work for additional information</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Licensed to
the Apache Software Foundation (ASF) under one</span></pre></td></tr>
<tr> <td class="numLine"> 7</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * regarding
copyright ownership. The ASF licenses this file</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * or more
contributor license agreements. See the NOTICE file</span></pre></td></tr>
<tr> <td class="numLine"> 8</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * to you under
the Apache License, Version 2.0 (the</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * distributed
with this work for additional information</span></pre></td></tr>
<tr> <td class="numLine"> 9</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * "License");
you may not use this file except in compliance</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * regarding
copyright ownership. The ASF licenses this file</span></pre></td></tr>
<tr> <td class="numLine"> 10</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * with the
License. You may obtain a copy of the License at</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * to you under
the Apache License, Version 2.0 (the</span></pre></td></tr>
<tr> <td class="numLine"> 11</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * "License");
you may not use this file except in compliance</span></pre></td></tr>
<tr> <td class="numLine"> 12</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * with the
License. You may obtain a copy of the License at</span></pre></td></tr>
<tr> <td class="numLine"> 13</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 14</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Unless
required by applicable law or agreed to in writing,</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr>
<tr> <td class="numLine"> 15</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * software
distributed under the License is distributed on an</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 16</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Unless
required by applicable law or agreed to in writing,</span></pre></td></tr>
<tr> <td class="numLine"> 17</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * KIND, either
express or implied. See the License for the</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * software
distributed under the License is distributed on an</span></pre></td></tr>
<tr> <td class="numLine"> 18</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * specific
language governing permissions and limitations</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></pre></td></tr>
<tr> <td class="numLine"> 19</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * under the
License.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * KIND, either
express or implied. See the License for the</span></pre></td></tr>
<tr> <td class="numLine"> 20</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * specific
language governing permissions and limitations</span></pre></td></tr>
<tr> <td class="numLine"> 21</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * under the
License.</span></pre></td></tr>
<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
java.lang.reflect.Method;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
java.util.ArrayList;</pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
java.util.HashMap;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">import</span>
java.util.Map;</pre></td></tr>
<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
java.util.Iterator;</pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
java.util.Map;</pre></td></tr>
-<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.activity.Disposable;</pre></td></tr>
-<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.activity.Initializable;</pre></td></tr>
+<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.configuration.Configurable;</pre></td></tr>
<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.service.ServiceManager;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.configuration.Configuration;</pre></td></tr>
<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.service.Serviceable;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.logger.AbstractLogEnabled;</pre></td></tr>
<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.configuration.Configurable;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.service.ServiceManager;</pre></td></tr>
<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.configuration.Configuration;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.service.Serviceable;</pre></td></tr>
<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.avalon.framework.logger.AbstractLogEnabled;</pre></td></tr>
-<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.fulcrum.factory.FactoryException;</pre></td></tr>
-<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span>
org.apache.fulcrum.factory.FactoryService;</pre></td></tr>
-<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * The Pool
Service extends the Factory Service by adding support for
pooling</span></pre></td></tr>
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * The Pool
Service extends the Factory Service by adding support</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * instantiated
objects. When a new instance is requested, the service
first</span></pre></td></tr>
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * for pooling
instantiated objects. When a new instance is</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * checks its
pool if one is available. If the the pool is empty, a new
instance</span></pre></td></tr>
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * requested,
the service first checks its pool if one is available.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * will be
requested from the FactoryService.</span></pre></td></tr>
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * If the the
pool is empty, a new instance will be requested</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * from the
FactoryService.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * For objects
implementing the Recyclable interface, a recycle method will
be</span></pre></td></tr>
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * called, when
they taken from the pool, and a dispose method, when they
are</span></pre></td></tr>
<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * For objects
implementing the Recyclable interface, a recycle</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * returned to
the pool.</span></pre></td></tr>
<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * method will
be called, when they taken from the pool, and</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * a dispose
method, when they are returned to the pool.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * @author
<a href="mailto:[email protected]">Ilkka
Priha</a></span></pre></td></tr>
<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * @author
<a href="mailto:[email protected]">Stephen
McConnell</a></span></pre></td></tr>
<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @author
<a href="mailto:[email protected]">Ilkka
Priha</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * @version
$Id: DefaultPoolService.java 1850691 2019-01-07 21:25:15Z painter
$</span></pre></td></tr>
<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @author
<a href="mailto:[email protected]">Stephen
McConnell</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @version
$Id: DefaultPoolService.java 670330 2008-06-22 09:37:21Z tv
$</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
avalon.component name="pool" lifestyle="transient"</span></pre></td></tr>
<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
avalon.service type="org.apache.fulcrum.pool.PoolService"</span></pre></td></tr>
<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@avalon.component name="pool" lifestyle="transient"</span></pre></td></tr>
-<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@avalon.service
type="org.apache.fulcrum.pool.PoolService"</span></pre></td></tr>
-<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
-<tr> <td class="numLineCover"> 55</td> <td
class="nbHitsCovered"> 6</td> <td class="src"><pre
class="src"> <span class="keyword">public</span> <span
class="keyword">class</span> DefaultPoolService <span
class="keyword">extends</span> AbstractLogEnabled <span
class="keyword">implements</span> PoolService, Serviceable, Disposable,
Initializable, Configurable</pre></td></tr>
+<tr> <td class="numLineCover"> 53</td> <td
class="nbHitsCovered"> 6</td> <td class="src"><pre
class="src"> <span class="keyword">public</span> <span
class="keyword">class</span> DefaultPoolService <span
class="keyword">extends</span> AbstractLogEnabled</pre></td></tr>
+<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="keyword">implements</span> PoolService, Serviceable, Disposable,
Initializable, Configurable {</pre></td></tr>
+<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * The
property specifying the pool capacity.</span></pre></td></tr>
<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * The
property specifying the pool capacity.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">public</span> <span class="keyword">static</span> <span
class="keyword">final</span> String POOL_CAPACITY = <span
class="string">"capacity"</span>;</pre></td></tr>
<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src"> </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">static</span> <span
class="keyword">final</span> String POOL_CAPACITY = <span
class="string">"capacity"</span>;</pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * The
default capacity of pools.</span></pre></td></tr>
<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * An inner
class for class specific pools.</span></pre></td></tr>
-<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+<tr> <td class="numLineCover"> 63</td> <td
class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">
<span class="keyword">private</span> <span class="keyword">int</span>
poolCapacity = DEFAULT_POOL_CAPACITY;</pre></td></tr>
<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">private</span> <span class="keyword">class</span>
PoolBuffer</pre></td></tr>
+ <td class="src"><pre class="src"> </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="numLine"> 66</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * The
pool repository, one pool for each class.</span></pre></td></tr>
<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * An
inner class for cached recycle methods.</span></pre></td></tr>
-<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+<tr> <td class="numLineCover"> 68</td> <td
class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">
<span class="keyword">private</span> HashMap<String, PoolBuffer>
poolRepository = <span class="keyword">new</span>
HashMap<>();</pre></td></tr>
<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">private</span> <span class="keyword">class</span>
Recycler</pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">private</span> Map<String, Integer>
capacityMap;</pre></td></tr>
<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">private</span> FactoryService factoryService;</pre></td></tr>
<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">private</span> ServiceManager manager;</pre></td></tr>
<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
The method.</span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">private</span> <span class="keyword">final</span> Method
recycle;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Gets
an instance of a named class either from the pool or by calling
the</span></pre></td></tr>
<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
Factory Service if the pool is empty.</span></pre></td></tr>
<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
The signature.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param className the name of the class.</span></pre></td></tr>
<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">private</span> <span class="keyword">final</span> String[]
signature;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@return the instance.</span></pre></td></tr>
<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@throws PoolException if recycling fails.</span></pre></td></tr>
<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
Constructs a new recycler.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">public</span> Object getInstance(String className) <span
class="keyword">throws</span> PoolException </pre></td></tr>
<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@param rec the recycle method.</span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@param sign the signature.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">try</span> </pre></td></tr>
<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
-<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">public</span> Recycler(Method rec, String[]
sign)</pre></td></tr>
-<tr> <td class="numLineCover"> 86</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> {</span></pre></td></tr>
-<tr> <td class="numLineCover"> 87</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> recycle = rec;</span></pre></td></tr>
-<tr> <td class="numLineCover"> 88</td> <td class="nbHitsUncovered"><a
title="Line 88: Conditional coverage 0% (0/4) [each condition: 0%,
0%]."> 0</a></td> <td class="src"><pre class="src"><span
class="srcUncovered"> <a title="Line 88: Conditional coverage 0% (0/4)
[each condition: 0%, 0%]."> signature = (sign != <span
class="keyword">null</span>) && (sign.length > 0) ? sign : <span
class="keyword">null</span>;</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 89</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> }</span></pre></td></tr>
-<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 85</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> Object instance =
pollInstance(className, <span class="keyword">null</span>, <span
class="keyword">null</span>);</span></pre></td></tr>
+<tr> <td class="numLineCover"> 86</td> <td class="nbHitsUncovered"><a
title="Line 86: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
86: Conditional coverage 0% (0/2)."> <span
class="keyword">return</span> instance == <span class="keyword">null</span> ?
getFactory().getInstance(className) : instance;</a></span></pre></td></tr>
+<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> } </pre></td></tr>
+<tr> <td class="numLineCover"> 88</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span class="keyword">catch</span>
(FactoryException fe) </span></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="numLineCover"> 90</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">throw</span> <span class="keyword">new</span>
PoolException(fe);</span></pre></td></tr>
<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
Matches the given signature against</span></pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
that of the recycle method of this recycler.</span></pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@param sign the signature.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@return the matching recycle method or null.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Gets
an instance of a named class either from the pool or by calling
the</span></pre></td></tr>
<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
Factory Service if the pool is empty. The specified class loader will
be</span></pre></td></tr>
<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">public</span> Method match(String[] sign)</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
passed to the Factory Service.</span></pre></td></tr>
<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 99</td> <td class="nbHitsUncovered"><a
title="Line 99: Conditional coverage 0% (0/4) [each condition: 0%,
0%]."> 0</a></td> <td class="src"><pre class="src"><span
class="srcUncovered"> <a title="Line 99: Conditional coverage 0% (0/4)
[each condition: 0%, 0%]."> <span class="keyword">if</span>
((sign != <span class="keyword">null</span>) && (sign.length >
0))</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param className the name of the class.</span></pre></td></tr>
<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 101</td> <td class="nbHitsUncovered"><a
title="Line 101: Conditional coverage 0% (0/4) [each condition: 0%,
0%]."> 0</a></td> <td class="src"><pre class="src"><span
class="srcUncovered"> <a title="Line 101: Conditional coverage 0% (0/4)
[each condition: 0%, 0%]."> <span class="keyword">if</span>
((signature != <span class="keyword">null</span>) && (sign.length ==
signature.length))</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param loader the class loader.</span></pre></td></tr>
+<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
@return the instance.</span></pre></td></tr>
<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 103</td> <td class="nbHitsUncovered"><a
title="Line 103: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
103: Conditional coverage 0% (0/2)."> <span
class="keyword">for</span> (<span class="keyword">int</span> i = 0; i <
signature.length; i++)</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@throws PoolException if recycling fails.</span></pre></td></tr>
+<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
{</pre></td></tr>
-<tr> <td class="numLineCover"> 105</td> <td class="nbHitsUncovered"><a
title="Line 105: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
105: Conditional coverage 0% (0/2)."> <span
class="keyword">if</span>
(!signature[i].equals(sign[i]))</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">public</span> Object getInstance(String className, ClassLoader
loader) <span class="keyword">throws</span> PoolException </pre></td></tr>
+<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
{</pre></td></tr>
-<tr> <td class="numLineCover"> 107</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">return</span> <span
class="keyword">null</span>;</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">
}</pre></td></tr>
-<tr> <td class="numLineCover"> 110</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">return</span> recycle;</span></pre></td></tr>
-<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">try</span> </pre></td></tr>
+<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 108</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> Object instance =
pollInstance(className, <span class="keyword">null</span>, <span
class="keyword">null</span>);</span></pre></td></tr>
+<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"><a
title="Line 109: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
109: Conditional coverage 0% (0/2)."> <span
class="keyword">return</span> instance == <span class="keyword">null</span> ?
getFactory().getInstance(className, loader) :
instance;</a></span></pre></td></tr>
+<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> } </pre></td></tr>
+<tr> <td class="numLineCover"> 111</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span class="keyword">catch</span>
(FactoryException fe) </span></pre></td></tr>
<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">else</span></pre></td></tr>
-<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 114</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">return</span> <span
class="keyword">null</span>;</span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 113</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">throw</span> <span class="keyword">new</span>
PoolException(fe);</span></pre></td></tr>
+<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 117</td> <td class="nbHitsUncovered"><a
title="Line 117: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
117: Conditional coverage 0% (0/2)."> <span
class="keyword">else</span> <span class="keyword">if</span> (signature == <span
class="keyword">null</span>)</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 119</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">return</span> recycle;</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Gets
an instance of a named class either from the pool or by calling
the</span></pre></td></tr>
+<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
Factory Service if the pool is empty. Parameters for its constructor
are</span></pre></td></tr>
<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
given as an array of objects, primitive types must be wrapped with
a</span></pre></td></tr>
<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">else</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
corresponding class.</span></pre></td></tr>
<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 123</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">return</span> <span
class="keyword">null</span>;</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param className the name of the class.</span></pre></td></tr>
<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param params an array containing the parameters of the
constructor.</span></pre></td></tr>
<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param signature an array containing the signature of the
constructor.</span></pre></td></tr>
<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@return the instance.</span></pre></td></tr>
<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@throws PoolException if recycling fails.</span></pre></td></tr>
<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * A
buffer for class instances.</span></pre></td></tr>
-<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="keyword">public</span> Object getInstance(String className, Object[]
params, String[] signature) <span class="keyword">throws</span> PoolException
</pre></td></tr>
<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">private</span> BoundedBuffer pool;</pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">try</span> </pre></td></tr>
<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * A
flag to determine if a more efficient recycler is
implemented.</span></pre></td></tr>
-<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
-<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">private</span> <span class="keyword">boolean</span>
arrayCtorRecyclable;</pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 133</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> Object instance =
pollInstance(className, params, signature);</span></pre></td></tr>
+<tr> <td class="numLineCover"> 134</td> <td class="nbHitsUncovered"><a
title="Line 134: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
134: Conditional coverage 0% (0/2)."> <span
class="keyword">return</span> instance == <span class="keyword">null</span> ?
getFactory().getInstance(className, params, signature) :
instance;</a></span></pre></td></tr>
<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * A
cache for recycling methods.</span></pre></td></tr>
+ <td class="src"><pre class="src"> } </pre></td></tr>
+<tr> <td class="numLineCover"> 136</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span class="keyword">catch</span>
(FactoryException fe) </span></pre></td></tr>
<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
-<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">private</span> ArrayList recyclers;</pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 138</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">throw</span> <span class="keyword">new</span>
PoolException(fe);</span></pre></td></tr>
<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
Contructs a new pool buffer with a specific capacity.</span></pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@param capacity a capacity.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Gets
an instance of a named class either from the pool or by calling
the</span></pre></td></tr>
<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">public</span> PoolBuffer(<span class="keyword">int</span>
capacity)</pre></td></tr>
-<tr> <td class="numLineCover"> 145</td> <td
class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">
{</pre></td></tr>
-<tr> <td class="numLineCover"> 146</td> <td
class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">
pool = <span class="keyword">new</span>
BoundedBuffer(capacity);</pre></td></tr>
-<tr> <td class="numLineCover"> 147</td> <td
class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">
}</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
Factory Service if the pool is empty. Parameters for its constructor
are</span></pre></td></tr>
+<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
given as an array of objects, primitive types must be wrapped with
a</span></pre></td></tr>
+<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
corresponding class. The specified class loader will be passed to the
Factory</span></pre></td></tr>
+<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
Service.</span></pre></td></tr>
<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
Tells pool that it contains objects which can be</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param className the name of the class.</span></pre></td></tr>
<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
initialized using an Object array.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param loader the class loader.</span></pre></td></tr>
<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param params an array containing the parameters of the
constructor.</span></pre></td></tr>
<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@param isArrayCtor a <code>boolean</code>
value</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param signature an array containing the signature of the
constructor.</span></pre></td></tr>
<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@return the instance.</span></pre></td></tr>
<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">public</span> <span class="keyword">void</span>
setArrayCtorRecyclable(<span class="keyword">boolean</span>
isArrayCtor)</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@throws PoolException if recycling fails.</span></pre></td></tr>
<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 156</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> arrayCtorRecyclable =
isArrayCtor;</span></pre></td></tr>
-<tr> <td class="numLineCover"> 157</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> }</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="keyword">public</span> Object getInstance(String className, ClassLoader
loader, Object[] params, String[] signature)</pre></td></tr>
+<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="keyword">throws</span> PoolException </pre></td></tr>
<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
Polls for an instance from the pool.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">try</span> </pre></td></tr>
<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
-<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@return an instance or null.</span></pre></td></tr>
-<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 161</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> Object instance =
pollInstance(className, params, signature);</span></pre></td></tr>
+<tr> <td class="numLineCover"> 162</td> <td class="nbHitsUncovered"><a
title="Line 162: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
162: Conditional coverage 0% (0/2)."> <span
class="keyword">return</span> instance == <span class="keyword">null</span> ?
getFactory().getInstance(className, loader, params, signature) :
instance;</a></span></pre></td></tr>
<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">public</span> Object poll(Object[] params, String[] signature)
<span class="keyword">throws</span> PoolException</pre></td></tr>
-<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 165</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> Object instance =
pool.poll();</span></pre></td></tr>
-<tr> <td class="numLineCover"> 166</td> <td class="nbHitsUncovered"><a
title="Line 166: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
166: Conditional coverage 0% (0/2)."> <span
class="keyword">if</span> (instance != <span
class="keyword">null</span>)</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> } </pre></td></tr>
+<tr> <td class="numLineCover"> 164</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span class="keyword">catch</span>
(FactoryException fe) </span></pre></td></tr>
+<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 166</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">throw</span> <span class="keyword">new</span>
PoolException(fe);</span></pre></td></tr>
<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 168</td> <td class="nbHitsUncovered"><a
title="Line 168: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
168: Conditional coverage 0% (0/2)."> <span
class="keyword">if</span> (arrayCtorRecyclable)</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 170</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> ((ArrayCtorRecyclable)
instance).recycle(params);</span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"><a
title="Line 172: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
172: Conditional coverage 0% (0/2)."> <span
class="keyword">else</span> <span class="keyword">if</span> (instance <span
class="keyword">instanceof</span> Recyclable)</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
Tests if specified class loaders are supported for a named
class.</span></pre></td></tr>
+<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param className the name of the class.</span></pre></td></tr>
<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">try</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@return true if class loaders are supported, false
otherwise.</span></pre></td></tr>
<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 176</td> <td class="nbHitsUncovered"><a
title="Line 176: Conditional coverage 0% (0/4) [each condition: 0%,
0%]."> 0</a></td> <td class="src"><pre class="src"><span
class="srcUncovered"> <a title="Line 176: Conditional coverage 0% (0/4)
[each condition: 0%, 0%]."> <span
class="keyword">if</span> ((signature != <span class="keyword">null</span>)
&& (signature.length > 0))</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@throws FactoryException if test fails.</span></pre></td></tr>
+<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
{</pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">public</span> <span class="keyword">boolean</span>
isLoaderSupported(String className) <span class="keyword">throws</span>
FactoryException </pre></td></tr>
<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/* Get the recycle method from the cache.
*/</span></pre></td></tr>
-<tr> <td class="numLineCover"> 179</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> Method recycle =
getRecycle(signature);</span></pre></td></tr>
-<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"><a
title="Line 180: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
180: Conditional coverage 0% (0/2)."> <span
class="keyword">if</span> (recycle == <span
class="keyword">null</span>)</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 179</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span class="keyword">return</span>
getFactory().isLoaderSupported(className);</span></pre></td></tr>
+<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
{</pre></td></tr>
-<tr> <td class="numLineCover"> 182</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">synchronized</span> (<span
class="keyword">this</span>)</span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
{</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Gets
an instance of a specified class either from the pool or by
instatiating</span></pre></td></tr>
<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
<span class="comment">/* Make a synchronized recheck. */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 185</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> recycle =
getRecycle(signature);</span></pre></td></tr>
-<tr> <td class="numLineCover"> 186</td> <td class="nbHitsUncovered"><a
title="Line 186: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
186: Conditional coverage 0% (0/2)."> <span
class="keyword">if</span> (recycle == <span
class="keyword">null</span>)</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * from
the class if the pool is empty.</span></pre></td></tr>
+<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param clazz the class.</span></pre></td></tr>
<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
{</pre></td></tr>
-<tr> <td class="numLineCover"> 188</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> Class clazz
= instance.getClass();</span></pre></td></tr>
-<tr> <td class="numLineCover"> 189</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> recycle
=</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@return the instance.</span></pre></td></tr>
+<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
@throws PoolException if recycling fails.</span></pre></td></tr>
+<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
clazz.getMethod(</pre></td></tr>
+ <td class="src"><pre class="src"> @SuppressWarnings(<span
class="string">"unchecked"</span>)</pre></td></tr>
<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
<span class="string">"recycle"</span>,</pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">public</span> Object getInstance(Class clazz) <span
class="keyword">throws</span> PoolException </pre></td></tr>
<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
getFactory().getSignature(clazz, params, signature));</pre></td></tr>
-<tr> <td class="numLineCover"> 193</td> <td class="nbHitsUncovered"><a
title="Line 193: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
193: Conditional coverage 0% (0/2).">
ArrayList cache =</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="keyword">try</span> </pre></td></tr>
<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
recyclers != <span class="keyword">null</span> ? (ArrayList)
recyclers.clone() : <span class="keyword">new</span>
ArrayList();</pre></td></tr>
-<tr> <td class="numLineCover"> 195</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered">
cache.add(<span class="keyword">new</span> Recycler(recycle,
signature));</span></pre></td></tr>
-<tr> <td class="numLineCover"> 196</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> recyclers =
cache;</span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 195</td> <td
class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">
Object instance = pollInstance(clazz.getName(), <span
class="keyword">null</span>, <span class="keyword">null</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 196</td> <td class="nbHitsUncovered"><a
title="Line 196: Conditional coverage 50% (1/2)."> 1</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
196: Conditional coverage 50% (1/2)."> <span
class="keyword">return</span> instance == <span class="keyword">null</span> ?
factoryService.getInstance(clazz) : instance;</a></span></pre></td></tr>
<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
}</pre></td></tr>
-<tr> <td class="numLineCover"> 198</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered">
}</span></pre></td></tr>
+ <td class="src"><pre class="src"> } </pre></td></tr>
+<tr> <td class="numLineCover"> 198</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span class="keyword">catch</span>
(FactoryException fe) </span></pre></td></tr>
<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
}</pre></td></tr>
-<tr> <td class="numLineCover"> 200</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> recycle.invoke(instance,
params);</span></pre></td></tr>
-<tr> <td class="numLineCover"> 201</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> }</span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 200</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">throw</span> <span class="keyword">new</span>
PoolException(fe);</span></pre></td></tr>
+<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">else</span></pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
{</pre></td></tr>
-<tr> <td class="numLineCover"> 204</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> ((Recyclable)
instance).recycle();</span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src">
}</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Gets
an instance of a specified class either from the pool or by
instatiating</span></pre></td></tr>
<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 207</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">catch</span> (Exception x)</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * from
the class if the pool is empty.</span></pre></td></tr>
+<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 208</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 209</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">throw</span> <span class="keyword">new</span>
PoolException(<span class="string">"Recycling failed for "</span> +
instance.getClass().getName(), x);</span></pre></td></tr>
-<tr> <td class="numLineCover"> 210</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> }</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param clazz the class.</span></pre></td></tr>
+<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param params an array containing the parameters of the
constructor.</span></pre></td></tr>
+<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param signature an array containing the signature of the
constructor.</span></pre></td></tr>
<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@return the instance.</span></pre></td></tr>
<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 213</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span class="keyword">return</span>
instance;</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@throws PoolException if recycling fails.</span></pre></td></tr>
+<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">public</span> Object getInstance(Class clazz, Object params[],
String signature[]) <span class="keyword">throws</span> PoolException
</pre></td></tr>
<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
Offers an instance to the pool.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="keyword">try</span> </pre></td></tr>
<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
-<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@param instance an instance.</span></pre></td></tr>
+ <td class="src"><pre class="src"> {</pre></td></tr>
+<tr> <td class="numLineCover"> 218</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> Object instance =
pollInstance(clazz.getName(), params, signature);</span></pre></td></tr>
<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+ <td class="src"><pre class="src">
</pre></td></tr>
<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">public</span> <span class="keyword">boolean</span> offer(Object
instance)</pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="comment">// TODO There is a whacky .toString() on the clazz object,
</span></pre></td></tr>
<tr> <td class="numLine"> 221</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 222</td> <td class="nbHitsUncovered"><a
title="Line 222: Conditional coverage 50% (1/2)."> 5</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
222: Conditional coverage 50% (1/2)."> <span
class="keyword">if</span> (instance <span class="keyword">instanceof</span>
Recyclable)</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> <span
class="comment">// but otherwise it won't compile</span></pre></td></tr>
+<tr> <td class="numLineCover"> 222</td> <td class="nbHitsUncovered"><a
title="Line 222: Conditional coverage 0% (0/2)."> 0</a></td> <td
class="src"><pre class="src"><span class="srcUncovered"> <a title="Line
222: Conditional coverage 0% (0/2)."> <span
class="keyword">return</span> instance == <span class="keyword">null</span> ?
getFactory().getInstance(clazz.toString(), params, signature) :
instance;</a></span></pre></td></tr>
<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
+ <td class="src"><pre class="src">
</pre></td></tr>
<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="keyword">try</span></pre></td></tr>
-<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> } </pre></td></tr>
+<tr> <td class="numLineCover"> 225</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span class="keyword">catch</span>
(FactoryException fe) </span></pre></td></tr>
+<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 226</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> ((Recyclable)
instance).dispose();</span></pre></td></tr>
-<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 227</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">throw</span> <span class="keyword">new</span>
PoolException(fe);</span></pre></td></tr>
+<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 228</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span class="keyword">catch</span>
(Exception x)</span></pre></td></tr>
<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> {</pre></td></tr>
-<tr> <td class="numLineCover"> 230</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> <span
class="keyword">return</span> <span
class="keyword">false</span>;</span></pre></td></tr>
-<tr> <td class="numLineCover"> 231</td> <td
class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span
class="srcUncovered"> }</span></pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 233</td> <td
class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">
<span class="keyword">return</span> pool.offer(instance);</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Puts
a used object back to the pool. Objects implementing the
Recyclable</span></pre></td></tr>
+<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *
interface can provide a recycle method to be called when they are reused
and</span></pre></td></tr>
<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * a
dispose method to be called when they are returned to the
pool.</span></pre></td></tr>
<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span
class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
Returns the capacity of the pool.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@param instance the object instance to recycle.</span></pre></td></tr>
<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">
*</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> *
@return true if the instance was accepted.</span></pre></td></tr>
<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *
@return the capacity.</span></pre></td></tr>
-<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">
*/</span></pre></td></tr>
+<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td>
[... 951 lines stripped ...]