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> > <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> > <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> > <a href="index.source.html" class="el_package">org.apache.commons.pool2.impl</a> > <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 "License"); 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 "AS IS" 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.
+ * <p>
+ * This class is intended to be thread-safe.
+ * </p>
+ *
+ * @param <T> the type of object in the pool
+ *
+ * @since 2.0
+ */
+public class DefaultPooledObject<T> implements PooledObject<T> {
+
+ private final T object;
+<span class="fc" id="L40"> private PooledObjectState state = PooledObjectState.IDLE; // @GuardedBy("this") 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 > 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 >= 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<T> 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("Object: ");</span>
+<span class="nc" id="L146"> result.append(object.toString());</span>
+<span class="nc" id="L147"> result.append(", State: ");</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<PooledObject<T>> 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("'Pooled object created' " +</span>
+ "yyyy-MM-dd HH:mm:ss Z 'by the following code has not been returned to the pool:'",
+ true, requireFullStackTrace);
+<span class="fc" id="L294"> usedBy = CallStackUtils.newCallStack("The last code to use this object was:",</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> > <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> > <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> > <a href="index.source.html" class="el_package">org.apache.commons.pool2.impl</a> > <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 "License"); 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 "AS IS" 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<?> 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<?> 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("yyyy-MM-dd HH:mm:ss Z");</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("yyyy-MM-dd HH:mm:ss Z");</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("yyyy-MM-dd HH:mm:ss Z");</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("DefaultPooledObjectInfo [pooledObject=");</span>
+<span class="nc" id="L106"> builder.append(pooledObject);</span>
+<span class="nc" id="L107"> builder.append("]");</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> > <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> > <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> > <a href="index.source.html" class="el_package">org.apache.commons.pool2.impl</a> > <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 "License"); 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 "AS IS" 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.
+ * <p>
+ * 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 > 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 > 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.
+ * <p>
+ * 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.
+ * <p>
+ * 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.
+ * <p>
+ * 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("EvictionConfig [idleEvictTime=");</span>
+<span class="nc" id="L106"> builder.append(idleEvictTime);</span>
+<span class="nc" id="L107"> builder.append(", idleSoftEvictTime=");</span>
+<span class="nc" id="L108"> builder.append(idleSoftEvictTime);</span>
+<span class="nc" id="L109"> builder.append(", minIdle=");</span>
+<span class="nc" id="L110"> builder.append(minIdle);</span>
+<span class="nc" id="L111"> builder.append("]");</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> > <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> > <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> > <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> > <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> > <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> > <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> > <a href="index.source.html" class="el_package">org.apache.commons.pool2.impl</a> > <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 "License"); 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 "AS IS" 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.
+ * <p>
+ * 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.
+ * </p>
+ * <p>
+ * This class has package scope to prevent its inclusion in the pool public API. The class declaration below should
+ * *not* be changed to public.
+ * </p>
+ * <p>
+ * This class is intended to be thread-safe.
+ * </p>
+ *
+ * @since 2.0
+ */
+class EvictionTimer {
+
+ /** Executor instance */
+ private static ScheduledThreadPoolExecutor executor; //@GuardedBy("EvictionTimer.class")
+
+ /** 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("EvictionTimer []");</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<?>.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<?> 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<?>.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 && 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, "commons-pool-evictor-thread");</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<Void>() {</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> > <a href="index.html" class="el_package">org.apache.commons.pool2.impl</a> > <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