You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@commons.apache.org by gg...@apache.org on 2019/08/10 22:26:46 UTC

svn commit: r1048500 [18/39] - in /websites/production/commons/content/proper: commons-pool/ commons-pool/apidocs/ commons-pool/apidocs/org/apache/commons/pool2/ commons-pool/apidocs/org/apache/commons/pool2/class-use/ commons-pool/apidocs/org/apache/c...

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObject.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObject.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObject.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultPooledObject</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_class">DefaultPooledObject</span></div><h1>DefaultPooledObject</h1><table class="coverage" cellspacing="0" id
 ="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">42 of 303</td><td class="ctr2">86%</td><td class="bar">4 of 28</td><td class="ctr2">85%</td><td class="ctr1">6</td><td 
 class="ctr2">37</td><td class="ctr1">10</td><td class="ctr2">88</td><td class="ctr1">2</td><td class="ctr2">23</td></tr></tfoot><tbody><tr><td id="a21"><a href="DefaultPooledObject.java.html#L144" class="el_method">toString()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="104" height="10" title="34" alt="34"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i2">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a5"><a href="DefaultPooledObject.java.html#L73" class="el_method">getActiveTimeMillis()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="43" height="10" title="14" alt="14"/></td><td class="ctr2" id="c20">77%</td><td class="bar" id="d1
 "><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="1" alt="1"/></td><td class="ctr2" id="e6">50%</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i5">5</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="DefaultPooledObject.java.html#L108" class="el_method">getBorrowedCount()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i17">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="DefaultPooledObject.java.html#L84" class="el_method">getIdleTimeMil
 lis()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="12" alt="12"/></td><td class="ctr2" id="c19">92%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="1" alt="1"/></td><td class="ctr2" id="e7">50%</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="DefaultPooledObject.java.html#L188" class="el_method">allocate()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="39" alt="39"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d4"><img src="../jacoco-resources/greenbar.gif" width="
 120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i0">12</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="DefaultPooledObject.java.html#L40" class="el_method">DefaultPooledObject(Object)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="36" alt="36"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i1">12</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="DefaultPooledObject.java.html#L130" class="el_method">compareTo(PooledObject)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="70" height="10" title="23
 " alt="23"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d6"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i7">4</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a4"><a href="DefaultPooledObject.java.html#L168" class="el_method">endEvictionTest(Deque)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="67" height="10" title="22" alt="22"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" alt="5"/></td><td class="ctr2" id="e5">83%</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h7">0</td><td class="ctr2" id
 ="i3">7</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a2"><a href="DefaultPooledObject.java.html#L215" class="el_method">deallocate()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="64" height="10" title="21" alt="21"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i4">6</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a17"><a href="DefaultPooledObject.java.html#L242" class="el_method">printStackTrace(PrintWriter)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="52" height="10" title="17" alt="17"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d3"><img src="../jacoco-resources/redba
 r.gif" width="20" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="1" alt="1"/></td><td class="ctr2" id="e8">50%</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i6">5</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a11"><a href="DefaultPooledObject.java.html#L122" class="el_method">getLastUsedTime()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="46" height="10" title="15" alt="15"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d7"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">100%</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g7">2</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i9">3</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a19"><a href="Defau
 ltPooledObject.java.html#L291" class="el_method">setRequireFullStackTrace(boolean)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="13" alt="13"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i10">3</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a20"><a href="DefaultPooledObject.java.html#L157" class="el_method">startEvictionTest()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="33" height="10" title="11" alt="11"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d8"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="2" alt="2"/></td><td class="ctr2" id="e4">100%</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g8">2</td><td class="ctr1" id="h12"
 >0</td><td class="ctr2" id="i8">4</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a22"><a href="DefaultPooledObject.java.html#L236" class="el_method">use()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="21" height="10" title="7" alt="7"/></td><td class="ctr2" id="c9">100%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i11">3</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a14"><a href="DefaultPooledObject.java.html#L231" class="el_method">invalidate()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="12" height="10" title="4" alt="4"/></td><td class="ctr2" id="c10">100%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g14">1</td><td class="ct
 r1" id="h14">0</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a15"><a href="DefaultPooledObject.java.html#L263" class="el_method">markAbandoned()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/greenbar.gif" width="12" height="10" title="4" alt="4"/></td><td class="ctr2" id="c11">100%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a16"><a href="DefaultPooledObject.java.html#L271" class="el_method">markReturning()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/greenbar.gif" width="12" height="10" title="4" alt="4"/></td><td class="ctr2" id="c12">100%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">0</td><td class="ctr2" i
 d="g16">1</td><td class="ctr1" id="h16">0</td><td class="ctr2" id="i15">2</td><td class="ctr1" id="j16">0</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a18"><a href="DefaultPooledObject.java.html#L276" class="el_method">setLogAbandoned(boolean)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/greenbar.gif" width="12" height="10" title="4" alt="4"/></td><td class="ctr2" id="c13">100%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">0</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">0</td><td class="ctr2" id="i16">2</td><td class="ctr1" id="j17">0</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a12"><a href="DefaultPooledObject.java.html#L62" class="el_method">getObject()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c14">100%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id=
 "f18">0</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">0</td><td class="ctr2" id="i18">1</td><td class="ctr1" id="j18">0</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a7"><a href="DefaultPooledObject.java.html#L67" class="el_method">getCreateTime()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c15">100%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">0</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">0</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j19">0</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a9"><a href="DefaultPooledObject.java.html#L93" class="el_method">getLastBorrowTime()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c16">100%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a
 </td><td class="ctr1" id="f20">0</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">0</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">0</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a10"><a href="DefaultPooledObject.java.html#L98" class="el_method">getLastReturnTime()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c17">100%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">0</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">0</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j21">0</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a13"><a href="DefaultPooledObject.java.html#L255" class="el_method">getState()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c18">100%</td><td class="bar" id="d22"/><td cl
 ass="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">0</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">0</td><td class="ctr2" id="i22">1</td><td class="ctr1" id="j22">0</td><td class="ctr2" id="k22">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObject.java.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObject.java.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObject.java.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultPooledObject.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.source.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_so
 urce">DefaultPooledObject.java</span></div><h1>DefaultPooledObject.java</h1><pre class="source lang-java linenums">/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the &quot;License&quot;); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.pool2.impl;
+
+import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool2.PooledObjectState;
+import org.apache.commons.pool2.TrackedUse;
+
+import java.io.PrintWriter;
+import java.util.Deque;
+
+/**
+ * This wrapper is used to track the additional information, such as state, for
+ * the pooled objects.
+ * &lt;p&gt;
+ * This class is intended to be thread-safe.
+ * &lt;/p&gt;
+ *
+ * @param &lt;T&gt; the type of object in the pool
+ *
+ * @since 2.0
+ */
+public class DefaultPooledObject&lt;T&gt; implements PooledObject&lt;T&gt; {
+
+    private final T object;
+<span class="fc" id="L40">    private PooledObjectState state = PooledObjectState.IDLE; // @GuardedBy(&quot;this&quot;) to ensure transitions are valid</span>
+<span class="fc" id="L41">    private final long createTime = System.currentTimeMillis();</span>
+<span class="fc" id="L42">    private volatile long lastBorrowTime = createTime;</span>
+<span class="fc" id="L43">    private volatile long lastUseTime = createTime;</span>
+<span class="fc" id="L44">    private volatile long lastReturnTime = createTime;</span>
+<span class="fc" id="L45">    private volatile boolean logAbandoned = false;</span>
+<span class="fc" id="L46">    private volatile CallStack borrowedBy = NoOpCallStack.INSTANCE;</span>
+<span class="fc" id="L47">    private volatile CallStack usedBy = NoOpCallStack.INSTANCE;</span>
+<span class="fc" id="L48">    private volatile long borrowedCount = 0;</span>
+
+    /**
+     * Creates a new instance that wraps the provided object so that the pool can
+     * track the state of the pooled object.
+     *
+     * @param object The object to wrap
+     */
+<span class="fc" id="L56">    public DefaultPooledObject(final T object) {</span>
+<span class="fc" id="L57">        this.object = object;</span>
+<span class="fc" id="L58">    }</span>
+
+    @Override
+    public T getObject() {
+<span class="fc" id="L62">        return object;</span>
+    }
+
+    @Override
+    public long getCreateTime() {
+<span class="fc" id="L67">        return createTime;</span>
+    }
+
+    @Override
+    public long getActiveTimeMillis() {
+        // Take copies to avoid threading issues
+<span class="fc" id="L73">        final long rTime = lastReturnTime;</span>
+<span class="fc" id="L74">        final long bTime = lastBorrowTime;</span>
+
+<span class="pc bpc" id="L76" title="1 of 2 branches missed.">        if (rTime &gt; bTime) {</span>
+<span class="nc" id="L77">            return rTime - bTime;</span>
+        }
+<span class="fc" id="L79">        return System.currentTimeMillis() - bTime;</span>
+    }
+
+    @Override
+    public long getIdleTimeMillis() {
+<span class="fc" id="L84">        final long elapsed = System.currentTimeMillis() - lastReturnTime;</span>
+        // elapsed may be negative if:
+        // - another thread updates lastReturnTime during the calculation window
+        // - System.currentTimeMillis() is not monotonic (e.g. system time is set back)
+<span class="pc bpc" id="L88" title="1 of 2 branches missed.">        return elapsed &gt;= 0 ? elapsed : 0;</span>
+    }
+
+    @Override
+    public long getLastBorrowTime() {
+<span class="fc" id="L93">        return lastBorrowTime;</span>
+    }
+
+    @Override
+    public long getLastReturnTime() {
+<span class="fc" id="L98">        return lastReturnTime;</span>
+    }
+
+    /**
+     * Gets the number of times this object has been borrowed.
+     * @return The number of times this object has been borrowed.
+     * @since 2.1
+     */
+    @Override
+    public long getBorrowedCount() {
+<span class="nc" id="L108">        return borrowedCount;</span>
+    }
+
+    /**
+     * Returns an estimate of the last time this object was used.  If the class
+     * of the pooled object implements {@link TrackedUse}, what is returned is
+     * the maximum of {@link TrackedUse#getLastUsed()} and
+     * {@link #getLastBorrowTime()}; otherwise this method gives the same
+     * value as {@link #getLastBorrowTime()}.
+     *
+     * @return the last time this object was used
+     */
+    @Override
+    public long getLastUsedTime() {
+<span class="fc bfc" id="L122" title="All 2 branches covered.">        if (object instanceof TrackedUse) {</span>
+<span class="fc" id="L123">            return Math.max(((TrackedUse) object).getLastUsed(), lastUseTime);</span>
+        }
+<span class="fc" id="L125">        return lastUseTime;</span>
+    }
+
+    @Override
+    public int compareTo(final PooledObject&lt;T&gt; other) {
+<span class="fc" id="L130">        final long lastActiveDiff = this.getLastReturnTime() - other.getLastReturnTime();</span>
+<span class="fc bfc" id="L131" title="All 2 branches covered.">        if (lastActiveDiff == 0) {</span>
+            // Make sure the natural ordering is broadly consistent with equals
+            // although this will break down if distinct objects have the same
+            // identity hash code.
+            // see java.lang.Comparable Javadocs
+<span class="fc" id="L136">            return System.identityHashCode(this) - System.identityHashCode(other);</span>
+        }
+        // handle int overflow
+<span class="fc" id="L139">        return (int)Math.min(Math.max(lastActiveDiff, Integer.MIN_VALUE), Integer.MAX_VALUE);</span>
+    }
+
+    @Override
+    public String toString() {
+<span class="nc" id="L144">        final StringBuilder result = new StringBuilder();</span>
+<span class="nc" id="L145">        result.append(&quot;Object: &quot;);</span>
+<span class="nc" id="L146">        result.append(object.toString());</span>
+<span class="nc" id="L147">        result.append(&quot;, State: &quot;);</span>
+<span class="nc" id="L148">        synchronized (this) {</span>
+<span class="nc" id="L149">            result.append(state.toString());</span>
+<span class="nc" id="L150">        }</span>
+<span class="nc" id="L151">        return result.toString();</span>
+        // TODO add other attributes
+    }
+
+    @Override
+    public synchronized boolean startEvictionTest() {
+<span class="fc bfc" id="L157" title="All 2 branches covered.">        if (state == PooledObjectState.IDLE) {</span>
+<span class="fc" id="L158">            state = PooledObjectState.EVICTION;</span>
+<span class="fc" id="L159">            return true;</span>
+        }
+
+<span class="fc" id="L162">        return false;</span>
+    }
+
+    @Override
+    public synchronized boolean endEvictionTest(
+            final Deque&lt;PooledObject&lt;T&gt;&gt; idleQueue) {
+<span class="fc bfc" id="L168" title="All 2 branches covered.">        if (state == PooledObjectState.EVICTION) {</span>
+<span class="fc" id="L169">            state = PooledObjectState.IDLE;</span>
+<span class="fc" id="L170">            return true;</span>
+<span class="fc bfc" id="L171" title="All 2 branches covered.">        } else if (state == PooledObjectState.EVICTION_RETURN_TO_HEAD) {</span>
+<span class="fc" id="L172">            state = PooledObjectState.IDLE;</span>
+<span class="pc bpc" id="L173" title="1 of 2 branches missed.">            if (!idleQueue.offerFirst(this)) {</span>
+                // TODO - Should never happen
+            }
+        }
+
+<span class="fc" id="L178">        return false;</span>
+    }
+
+    /**
+     * Allocates the object.
+     *
+     * @return {@code true} if the original state was {@link PooledObjectState#IDLE IDLE}
+     */
+    @Override
+    public synchronized boolean allocate() {
+<span class="fc bfc" id="L188" title="All 2 branches covered.">        if (state == PooledObjectState.IDLE) {</span>
+<span class="fc" id="L189">            state = PooledObjectState.ALLOCATED;</span>
+<span class="fc" id="L190">            lastBorrowTime = System.currentTimeMillis();</span>
+<span class="fc" id="L191">            lastUseTime = lastBorrowTime;</span>
+<span class="fc" id="L192">            borrowedCount++;</span>
+<span class="fc bfc" id="L193" title="All 2 branches covered.">            if (logAbandoned) {</span>
+<span class="fc" id="L194">                borrowedBy.fillInStackTrace();</span>
+            }
+<span class="fc" id="L196">            return true;</span>
+<span class="fc bfc" id="L197" title="All 2 branches covered.">        } else if (state == PooledObjectState.EVICTION) {</span>
+            // TODO Allocate anyway and ignore eviction test
+<span class="fc" id="L199">            state = PooledObjectState.EVICTION_RETURN_TO_HEAD;</span>
+<span class="fc" id="L200">            return false;</span>
+        }
+        // TODO if validating and testOnBorrow == true then pre-allocate for
+        // performance
+<span class="fc" id="L204">        return false;</span>
+    }
+
+    /**
+     * Deallocates the object and sets it {@link PooledObjectState#IDLE IDLE}
+     * if it is currently {@link PooledObjectState#ALLOCATED ALLOCATED}.
+     *
+     * @return {@code true} if the state was {@link PooledObjectState#ALLOCATED ALLOCATED}
+     */
+    @Override
+    public synchronized boolean deallocate() {
+<span class="fc bfc" id="L215" title="All 4 branches covered.">        if (state == PooledObjectState.ALLOCATED ||</span>
+                state == PooledObjectState.RETURNING) {
+<span class="fc" id="L217">            state = PooledObjectState.IDLE;</span>
+<span class="fc" id="L218">            lastReturnTime = System.currentTimeMillis();</span>
+<span class="fc" id="L219">            borrowedBy.clear();</span>
+<span class="fc" id="L220">            return true;</span>
+        }
+
+<span class="fc" id="L223">        return false;</span>
+    }
+
+    /**
+     * Sets the state to {@link PooledObjectState#INVALID INVALID}
+     */
+    @Override
+    public synchronized void invalidate() {
+<span class="fc" id="L231">        state = PooledObjectState.INVALID;</span>
+<span class="fc" id="L232">    }</span>
+
+    @Override
+    public void use() {
+<span class="fc" id="L236">        lastUseTime = System.currentTimeMillis();</span>
+<span class="fc" id="L237">        usedBy.fillInStackTrace();</span>
+<span class="fc" id="L238">    }</span>
+
+    @Override
+    public void printStackTrace(final PrintWriter writer) {
+<span class="fc" id="L242">        boolean written = borrowedBy.printStackTrace(writer);</span>
+<span class="fc" id="L243">        written |= usedBy.printStackTrace(writer);</span>
+<span class="pc bpc" id="L244" title="1 of 2 branches missed.">        if (written) {</span>
+<span class="fc" id="L245">            writer.flush();</span>
+        }
+<span class="fc" id="L247">    }</span>
+
+    /**
+     * Returns the state of this object.
+     * @return state
+     */
+    @Override
+    public synchronized PooledObjectState getState() {
+<span class="fc" id="L255">        return state;</span>
+    }
+
+    /**
+     * Marks the pooled object as abandoned.
+     */
+    @Override
+    public synchronized void markAbandoned() {
+<span class="fc" id="L263">        state = PooledObjectState.ABANDONED;</span>
+<span class="fc" id="L264">    }</span>
+
+    /**
+     * Marks the object as returning to the pool.
+     */
+    @Override
+    public synchronized void markReturning() {
+<span class="fc" id="L271">        state = PooledObjectState.RETURNING;</span>
+<span class="fc" id="L272">    }</span>
+
+    @Override
+    public void setLogAbandoned(final boolean logAbandoned) {
+<span class="fc" id="L276">        this.logAbandoned = logAbandoned;</span>
+<span class="fc" id="L277">    }</span>
+
+    /**
+     * Configures the stack trace generation strategy based on whether or not fully
+     * detailed stack traces are required. When set to false, abandoned logs may
+     * only include caller class information rather than method names, line numbers,
+     * and other normal metadata available in a full stack trace.
+     *
+     * @param requireFullStackTrace the new configuration setting for abandoned object
+     *                              logging
+     * @since 2.5
+     */
+    @Override
+    public void setRequireFullStackTrace(final boolean requireFullStackTrace) {
+<span class="fc" id="L291">        borrowedBy = CallStackUtils.newCallStack(&quot;'Pooled object created' &quot; +</span>
+            &quot;yyyy-MM-dd HH:mm:ss Z 'by the following code has not been returned to the pool:'&quot;,
+            true, requireFullStackTrace);
+<span class="fc" id="L294">        usedBy = CallStackUtils.newCallStack(&quot;The last code to use this object was:&quot;,</span>
+            false, requireFullStackTrace);
+<span class="fc" id="L296">    }</span>
+
+}
+</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObjectInfo.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObjectInfo.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObjectInfo.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultPooledObjectInfo</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_class">DefaultPooledObjectInfo</span></div><h1>DefaultPooledObjectInfo</h1><table class="coverage" cellsp
 acing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">24 of 103</td><td class="ctr2">76%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1"
 >2</td><td class="ctr2">12</td><td class="ctr1">6</td><td class="ctr2">23</td><td class="ctr1">2</td><td class="ctr2">12</td></tr></tfoot><tbody><tr><td id="a11"><a href="DefaultPooledObjectInfo.java.html#L104" class="el_method">toString()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="20" alt="20"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="DefaultPooledObjectInfo.java.html#L96" class="el_method">getBorrowedCount()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="4" alt="4"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td cla
 ss="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="DefaultPooledObjectInfo.java.html#L68" class="el_method">getLastBorrowTrace()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="84" height="10" title="14" alt="14"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="DefaultPooledObjectInfo.java.html#L51" class="el_method">getCreateTimeFormatted()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="72" height="10" title="12" alt="12"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class
 ="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="DefaultPooledObjectInfo.java.html#L62" class="el_method">getLastBorrowTimeFormatted()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="72" height="10" title="12" alt="12"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="DefaultPooledObjectInfo.java.html#L80" class="el_method">getLastReturnTimeFormatted()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="72" height="10" title="12" alt="12"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d5"/><
 td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a0"><a href="DefaultPooledObjectInfo.java.html#L40" class="el_method">DefaultPooledObjectInfo(PooledObject)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="6" alt="6"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a10"><a href="DefaultPooledObjectInfo.java.html#L86" class="el_method">getPooledObjectType()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="6" alt="6"/></td><td class="ctr2" id=
 "c5">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a9"><a href="DefaultPooledObjectInfo.java.html#L91" class="el_method">getPooledObjectToString()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="30" height="10" title="5" alt="5"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a2"><a href="DefaultPooledObjectInfo.java.html#L46" class="el_method">getCreateTime()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="4" alt="4"/></td
 ><td class="ctr2" id="c7">100%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a4"><a href="DefaultPooledObjectInfo.java.html#L57" class="el_method">getLastBorrowTime()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="4" alt="4"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a7"><a href="DefaultPooledObjectInfo.java.html#L75" class="el_method">getLastReturnTime()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="24" height
 ="10" title="4" alt="4"/></td><td class="ctr2" id="c9">100%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObjectInfo.java.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObjectInfo.java.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/DefaultPooledObjectInfo.java.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultPooledObjectInfo.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.source.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="e
 l_source">DefaultPooledObjectInfo.java</span></div><h1>DefaultPooledObjectInfo.java</h1><pre class="source lang-java linenums">/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the &quot;License&quot;); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.pool2.impl;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.text.SimpleDateFormat;
+
+import org.apache.commons.pool2.PooledObject;
+
+/**
+ * Implementation of object that is used to provide information on pooled
+ * objects via JMX.
+ *
+ * @since 2.0
+ */
+public class DefaultPooledObjectInfo implements DefaultPooledObjectInfoMBean {
+
+    private final PooledObject&lt;?&gt; pooledObject;
+
+    /**
+     * Create a new instance for the given pooled object.
+     *
+     * @param pooledObject The pooled object that this instance will represent
+     */
+<span class="fc" id="L40">    public DefaultPooledObjectInfo(final PooledObject&lt;?&gt; pooledObject) {</span>
+<span class="fc" id="L41">        this.pooledObject = pooledObject;</span>
+<span class="fc" id="L42">    }</span>
+
+    @Override
+    public long getCreateTime() {
+<span class="fc" id="L46">        return pooledObject.getCreateTime();</span>
+    }
+
+    @Override
+    public String getCreateTimeFormatted() {
+<span class="fc" id="L51">        final SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss Z&quot;);</span>
+<span class="fc" id="L52">        return sdf.format(Long.valueOf(pooledObject.getCreateTime()));</span>
+    }
+
+    @Override
+    public long getLastBorrowTime() {
+<span class="fc" id="L57">        return pooledObject.getLastBorrowTime();</span>
+    }
+
+    @Override
+    public String getLastBorrowTimeFormatted() {
+<span class="fc" id="L62">        final SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss Z&quot;);</span>
+<span class="fc" id="L63">        return sdf.format(Long.valueOf(pooledObject.getLastBorrowTime()));</span>
+    }
+
+    @Override
+    public String getLastBorrowTrace() {
+<span class="fc" id="L68">        final StringWriter sw = new StringWriter();</span>
+<span class="fc" id="L69">        pooledObject.printStackTrace(new PrintWriter(sw));</span>
+<span class="fc" id="L70">        return sw.toString();</span>
+    }
+
+    @Override
+    public long getLastReturnTime() {
+<span class="fc" id="L75">        return pooledObject.getLastReturnTime();</span>
+    }
+
+    @Override
+    public String getLastReturnTimeFormatted() {
+<span class="fc" id="L80">        final SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss Z&quot;);</span>
+<span class="fc" id="L81">        return sdf.format(Long.valueOf(pooledObject.getLastReturnTime()));</span>
+    }
+
+    @Override
+    public String getPooledObjectType() {
+<span class="fc" id="L86">        return pooledObject.getObject().getClass().getName();</span>
+    }
+
+    @Override
+    public String getPooledObjectToString() {
+<span class="fc" id="L91">        return pooledObject.getObject().toString();</span>
+    }
+
+    @Override
+    public long getBorrowedCount() {
+<span class="nc" id="L96">        return pooledObject.getBorrowedCount();</span>
+    }
+
+    /**
+     * @since 2.4.3
+     */
+    @Override
+    public String toString() {
+<span class="nc" id="L104">        final StringBuilder builder = new StringBuilder();</span>
+<span class="nc" id="L105">        builder.append(&quot;DefaultPooledObjectInfo [pooledObject=&quot;);</span>
+<span class="nc" id="L106">        builder.append(pooledObject);</span>
+<span class="nc" id="L107">        builder.append(&quot;]&quot;);</span>
+<span class="nc" id="L108">        return builder.toString();</span>
+    }
+}
+</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionConfig.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionConfig.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionConfig.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EvictionConfig</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_class">EvictionConfig</span></div><h1>EvictionConfig</h1><table class="coverage" cellspacing="0" id="coveragetable
 "><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">38 of 75</td><td class="ctr2">49%</td><td class="bar">0 of 4</td><td class="ctr2">100%</td><td class="ctr1">1</td><td class="ctr2">7</
 td><td class="ctr1">9</td><td class="ctr2">21</td><td class="ctr1">1</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a4"><a href="EvictionConfig.java.html#L104" class="el_method">toString()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">9</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="EvictionConfig.java.html#L47" class="el_method">EvictionConfig(long, long, int)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="88" height="10" title="28" alt="28"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="
 ctr2" id="e0">100%</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">9</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="EvictionConfig.java.html#L71" class="el_method">getIdleEvictTime()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="EvictionConfig.java.html#L84" class="el_method">getIdleSoftEvictTime()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d3"/><td class
 ="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a3"><a href="EvictionConfig.java.html#L96" class="el_method">getMinIdle()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionConfig.java.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionConfig.java.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionConfig.java.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EvictionConfig.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.source.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_source"
 >EvictionConfig.java</span></div><h1>EvictionConfig.java</h1><pre class="source lang-java linenums">/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the &quot;License&quot;); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.pool2.impl;
+
+/**
+ * This class is used by pool implementations to pass configuration information
+ * to {@link EvictionPolicy} instances. The {@link EvictionPolicy} may also have
+ * its own specific configuration attributes.
+ * &lt;p&gt;
+ * This class is immutable and thread-safe.
+ *
+ * @since 2.0
+ */
+public class EvictionConfig {
+
+    private final long idleEvictTime;
+    private final long idleSoftEvictTime;
+    private final int minIdle;
+
+    /**
+     * Create a new eviction configuration with the specified parameters.
+     * Instances are immutable.
+     *
+     * @param poolIdleEvictTime Expected to be provided by
+     *        {@link BaseGenericObjectPool#getMinEvictableIdleTimeMillis()}
+     * @param poolIdleSoftEvictTime Expected to be provided by
+     *        {@link BaseGenericObjectPool#getSoftMinEvictableIdleTimeMillis()}
+     * @param minIdle Expected to be provided by
+     *        {@link GenericObjectPool#getMinIdle()} or
+     *        {@link GenericKeyedObjectPool#getMinIdlePerKey()}
+     */
+    public EvictionConfig(final long poolIdleEvictTime, final long poolIdleSoftEvictTime,
+<span class="fc" id="L47">            final int minIdle) {</span>
+<span class="fc bfc" id="L48" title="All 2 branches covered.">        if (poolIdleEvictTime &gt; 0) {</span>
+<span class="fc" id="L49">            idleEvictTime = poolIdleEvictTime;</span>
+        } else {
+<span class="fc" id="L51">            idleEvictTime = Long.MAX_VALUE;</span>
+        }
+<span class="fc bfc" id="L53" title="All 2 branches covered.">        if (poolIdleSoftEvictTime &gt; 0) {</span>
+<span class="fc" id="L54">            idleSoftEvictTime = poolIdleSoftEvictTime;</span>
+        } else {
+<span class="fc" id="L56">            idleSoftEvictTime  = Long.MAX_VALUE;</span>
+        }
+<span class="fc" id="L58">        this.minIdle = minIdle;</span>
+<span class="fc" id="L59">    }</span>
+
+    /**
+     * Obtain the {@code idleEvictTime} for this eviction configuration
+     * instance.
+     * &lt;p&gt;
+     * How the evictor behaves based on this value will be determined by the
+     * configured {@link EvictionPolicy}.
+     *
+     * @return The {@code idleEvictTime} in milliseconds
+     */
+    public long getIdleEvictTime() {
+<span class="fc" id="L71">        return idleEvictTime;</span>
+    }
+
+    /**
+     * Obtain the {@code idleSoftEvictTime} for this eviction configuration
+     * instance.
+     * &lt;p&gt;
+     * How the evictor behaves based on this value will be determined by the
+     * configured {@link EvictionPolicy}.
+     *
+     * @return The (@code idleSoftEvictTime} in milliseconds
+     */
+    public long getIdleSoftEvictTime() {
+<span class="fc" id="L84">        return idleSoftEvictTime;</span>
+    }
+
+    /**
+     * Obtain the {@code minIdle} for this eviction configuration instance.
+     * &lt;p&gt;
+     * How the evictor behaves based on this value will be determined by the
+     * configured {@link EvictionPolicy}.
+     *
+     * @return The {@code minIdle}
+     */
+    public int getMinIdle() {
+<span class="fc" id="L96">        return minIdle;</span>
+    }
+
+    /**
+     * @since 2.4
+     */
+    @Override
+    public String toString() {
+<span class="nc" id="L104">        final StringBuilder builder = new StringBuilder();</span>
+<span class="nc" id="L105">        builder.append(&quot;EvictionConfig [idleEvictTime=&quot;);</span>
+<span class="nc" id="L106">        builder.append(idleEvictTime);</span>
+<span class="nc" id="L107">        builder.append(&quot;, idleSoftEvictTime=&quot;);</span>
+<span class="nc" id="L108">        builder.append(idleSoftEvictTime);</span>
+<span class="nc" id="L109">        builder.append(&quot;, minIdle=&quot;);</span>
+<span class="nc" id="L110">        builder.append(minIdle);</span>
+<span class="nc" id="L111">        builder.append(&quot;]&quot;);</span>
+<span class="nc" id="L112">        return builder.toString();</span>
+    }
+}
+</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer$EvictorThreadFactory$1.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer$EvictorThreadFactory$1.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer$EvictorThreadFactory$1.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EvictionTimer.EvictorThreadFactory.new PrivilegedAction() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_class">EvictionTimer.EvictorThreadFactory.new PrivilegedAction() 
 {...}</span></div><h1>EvictionTimer.EvictorThreadFactory.new PrivilegedAction() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
  class="bar">0 of 16</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">3</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="EvictionTimer.java.html#L123" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="EvictionTimer.java.html#L126" class="el_method">run()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="93" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">100%</td><td class="bar
 " id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer$EvictorThreadFactory.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer$EvictorThreadFactory.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer$EvictorThreadFactory.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EvictionTimer.EvictorThreadFactory</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_class">EvictionTimer.EvictorThreadFactory</span></div><h1>EvictionTimer.EvictorThreadFactory</
 h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 19</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class
 ="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">1</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="EvictionTimer.java.html#L121" class="el_method">newThread(Runnable)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="19" alt="19"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EvictionTimer</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_class">EvictionTimer</span></div><h1>EvictionTimer</h1><table class="coverage" cellspacing="0" id="coveragetable"><
 thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">12 of 62</td><td class="ctr2">80%</td><td class="bar">0 of 8</td><td class="ctr2">100%</td><td class="ctr1">1</td><td class="ctr2">7</td>
 <td class="ctr1">4</td><td class="ctr2">20</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="EvictionTimer.java.html#L60" class="el_method">toString()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="50" height="10" title="11" alt="11"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="EvictionTimer.java.html#L98" class="el_method">cancel(BaseGenericObjectPool.Evictor, long, TimeUnit)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="24" alt="24"/></td><td class="ctr2" id="c1">96%</td><td class="bar" id="d0"><img 
 src="../jacoco-resources/greenbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="EvictionTimer.java.html#L78" class="el_method">schedule(BaseGenericObjectPool.Evictor, long, long)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="26" alt="26"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Crea
 ted with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer.java.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer.java.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/EvictionTimer.java.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EvictionTimer.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.source.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_source">
 EvictionTimer.java</span></div><h1>EvictionTimer.java</h1><pre class="source lang-java linenums">/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the &quot;License&quot;); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.pool2.impl;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Provides a shared idle object eviction timer for all pools.
+ * &lt;p&gt;
+ * This class is currently implemented using {@link ScheduledThreadPoolExecutor}. This implementation may change in any
+ * future release. This class keeps track of how many pools are using it. If no pools are using the timer, it is
+ * cancelled. This prevents a thread being left running which, in application server environments, can lead to memory
+ * leads and/or prevent applications from shutting down or reloading cleanly.
+ * &lt;/p&gt;
+ * &lt;p&gt;
+ * This class has package scope to prevent its inclusion in the pool public API. The class declaration below should
+ * *not* be changed to public.
+ * &lt;/p&gt;
+ * &lt;p&gt;
+ * This class is intended to be thread-safe.
+ * &lt;/p&gt;
+ *
+ * @since 2.0
+ */
+class EvictionTimer {
+
+    /** Executor instance */
+    private static ScheduledThreadPoolExecutor executor; //@GuardedBy(&quot;EvictionTimer.class&quot;)
+
+    /** Prevents instantiation */
+    private EvictionTimer() {
+        // Hide the default constructor
+    }
+
+
+    /**
+     * @since 2.4.3
+     */
+    @Override
+    public String toString() {
+<span class="nc" id="L60">        final StringBuilder builder = new StringBuilder();</span>
+<span class="nc" id="L61">        builder.append(&quot;EvictionTimer []&quot;);</span>
+<span class="nc" id="L62">        return builder.toString();</span>
+    }
+
+
+    /**
+     * Adds the specified eviction task to the timer. Tasks that are added with a
+     * call to this method *must* call {@link #cancel()} to cancel the
+     * task to prevent memory and/or thread leaks in application server
+     * environments.
+     *
+     * @param task      Task to be scheduled.
+     * @param delay     Delay in milliseconds before task is executed.
+     * @param period    Time in milliseconds between executions.
+     */
+    static synchronized void schedule(
+            final BaseGenericObjectPool&lt;?&gt;.Evictor task, final long delay, final long period) {
+<span class="fc bfc" id="L78" title="All 2 branches covered.">        if (null == executor) {</span>
+<span class="fc" id="L79">            executor = new ScheduledThreadPoolExecutor(1, new EvictorThreadFactory());</span>
+<span class="fc" id="L80">            executor.setRemoveOnCancelPolicy(true);</span>
+        }
+<span class="fc" id="L82">        final ScheduledFuture&lt;?&gt; scheduledFuture =</span>
+<span class="fc" id="L83">                executor.scheduleWithFixedDelay(task, delay, period, TimeUnit.MILLISECONDS);</span>
+<span class="fc" id="L84">        task.setScheduledFuture(scheduledFuture);</span>
+<span class="fc" id="L85">    }</span>
+
+    /**
+     * Removes the specified eviction task from the timer.
+     *
+     * @param evictor   Task to be cancelled.
+     * @param timeout   If the associated executor is no longer required, how
+     *                  long should this thread wait for the executor to
+     *                  terminate?
+     * @param unit      The units for the specified timeout.
+     */
+    static synchronized void cancel(
+            final BaseGenericObjectPool&lt;?&gt;.Evictor evictor, final long timeout, final TimeUnit unit) {
+<span class="fc bfc" id="L98" title="All 2 branches covered.">        if (evictor != null) {</span>
+<span class="fc" id="L99">            evictor.cancel();</span>
+        }
+<span class="fc bfc" id="L101" title="All 4 branches covered.">        if (executor != null &amp;&amp; executor.getQueue().isEmpty()) {</span>
+<span class="fc" id="L102">            executor.shutdown();</span>
+            try {
+<span class="fc" id="L104">                executor.awaitTermination(timeout, unit);</span>
+<span class="nc" id="L105">            } catch (final InterruptedException e) {</span>
+                // Swallow
+                // Significant API changes would be required to propagate this
+<span class="fc" id="L108">            }</span>
+<span class="fc" id="L109">            executor.setCorePoolSize(0);</span>
+<span class="fc" id="L110">            executor = null;</span>
+        }
+<span class="fc" id="L112">    }</span>
+
+    /**
+     * Thread factory that creates a daemon thread, with the context class loader from this class.
+     */
+    private static class EvictorThreadFactory implements ThreadFactory {
+
+        @Override
+        public Thread newThread(final Runnable runnable) {
+<span class="fc" id="L121">            final Thread thread = new Thread(null, runnable, &quot;commons-pool-evictor-thread&quot;);</span>
+<span class="fc" id="L122">            thread.setDaemon(true); // POOL-363 - Required for applications using Runtime.addShutdownHook().</span>
+<span class="fc" id="L123">            AccessController.doPrivileged(new PrivilegedAction&lt;Void&gt;() {</span>
+                @Override
+                public Void run() {
+<span class="fc" id="L126">                    thread.setContextClassLoader(EvictorThreadFactory.class.getClassLoader());</span>
+<span class="fc" id="L127">                    return null;</span>
+                }
+            });
+
+<span class="fc" id="L131">            return thread;</span>
+        }
+    }
+}
+</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/GenericKeyedObjectPool$ObjectDeque.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/GenericKeyedObjectPool$ObjectDeque.html (added)
+++ websites/production/commons/content/proper/commons-pool/jacoco/org.apache.commons.pool2.impl/GenericKeyedObjectPool$ObjectDeque.html Sat Aug 10 22:26:44 2019
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>GenericKeyedObjectPool.ObjectDeque</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Pool</a> &gt; <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> &gt; <span class="el_class">GenericKeyedObjectPool.ObjectDeque</span></div><h1>GenericKeyedObjectPool.ObjectDeque</
 h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">47 of 96</td><td class="ctr2">51%</td><td class="bar">0 of 0</td><td class
 ="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">6</td><td class="ctr1">11</td><td class="ctr2">23</td><td class="ctr1">1</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a5"><a href="GenericKeyedObjectPool.java.html#L1526" class="el_method">toString()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="47" alt="47"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">11</td><td class="ctr2" id="i0">11</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="GenericKeyedObjectPool.java.html#L1458" class="el_method">GenericKeyedObjectPool.ObjectDeque(GenericKeyedObjectPool, boolean)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="94" height="10" title="37" alt="37"/></td><td class="ctr2" id="c0">100%</td><td class=
 "bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="GenericKeyedObjectPool.java.html#L1493" class="el_method">getIdleObjects()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="GenericKeyedObjectPool.java.html#L1503" class="el_method">getCreateCount()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">100%</
 td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="GenericKeyedObjectPool.java.html#L1512" class="el_method">getNumInterested()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="GenericKeyedObjectPool.java.html#L1521" class="el_method">getAllObjects()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="3" alt="3"/></td><td class="ctr2" 
 id="c4">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>
\ No newline at end of file