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/07/29 15:01:37 UTC

svn commit: r1048214 [5/42] - in /websites/production/commons/content/proper/commons-pool/api-2.7.0: ./ org/ org/apache/ org/apache/commons/ org/apache/commons/pool2/ org/apache/commons/pool2/class-use/ org/apache/commons/pool2/impl/ org/apache/commons...

Added: websites/production/commons/content/proper/commons-pool/api-2.7.0/org/apache/commons/pool2/KeyedObjectPool.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/api-2.7.0/org/apache/commons/pool2/KeyedObjectPool.html (added)
+++ websites/production/commons/content/proper/commons-pool/api-2.7.0/org/apache/commons/pool2/KeyedObjectPool.html Mon Jul 29 15:01:36 2019
@@ -0,0 +1,614 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>KeyedObjectPool (Apache Commons Pool 2.6.2 API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="KeyedObjectPool (Apache Commons Pool 2.6.2 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/KeyedObjectPool.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/commons/pool2/BasePooledObjectFactory.html" title="class in org.apache.commons.pool2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/commons/pool2/KeyedObjectPool.html" target="_top">Frames</a></li>
+<li><a href="KeyedObjectPool.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.commons.pool2</div>
+<h2 title="Interface KeyedObjectPool" class="title">Interface KeyedObjectPool&lt;K,V&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - The type of keys maintained by this pool.</dd>
+<dd><code>V</code> - Type of element pooled in this pool.</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="class in org.apache.commons.pool2.impl">GenericKeyedObjectPool</a>, <a href="../../../../org/apache/commons/pool2/proxy/ProxiedKeyedObjectPool.html" title="class in org.apache.commons.pool2.proxy">ProxiedKeyedObjectPool</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.68">KeyedObjectPool</a>&lt;K,V&gt;
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
+<div class="block">A "keyed" pooling interface.
+ <p>
+ A keyed pool maintains a pool of instances for each key value.
+ </p>
+ <p>
+ Example of use:
+ </p>
+ <pre style="border:solid thin; padding: 1ex;"
+ > Object obj = <code style="color:#00C">null</code>;
+ Object key = <code style="color:#C00">"Key"</code>;
+
+ <code style="color:#00C">try</code> {
+     obj = pool.borrowObject(key);
+     <code style="color:#0C0">//...use the object...</code>
+ } <code style="color:#00C">catch</code>(Exception e) {
+     <code style="color:#0C0">// invalidate the object</code>
+     pool.invalidateObject(key, obj);
+     <code style="color:#0C0">// do not return the object to the pool twice</code>
+     obj = <code style="color:#00C">null</code>;
+ } <code style="color:#00C">finally</code> {
+     <code style="color:#0C0">// make sure the object is returned to the pool</code>
+     <code style="color:#00C">if</code>(<code style="color:#00C">null</code> != obj) {
+         pool.returnObject(key, obj);
+     }
+ }</pre>
+ <p>
+ <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2"><code>KeyedObjectPool</code></a> implementations <i>may</i> choose to store at most
+ one instance per key value, or may choose to maintain a pool of instances
+ for each key (essentially creating a <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a> of
+ <a href="../../../../org/apache/commons/pool2/ObjectPool.html" title="interface in org.apache.commons.pool2"><code>pools</code></a>).
+ </p>
+ <p>
+ See <a href="../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="class in org.apache.commons.pool2.impl"><code>GenericKeyedObjectPool</code></a> for an implementation.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2"><code>KeyedPooledObjectFactory</code></a>, 
+<a href="../../../../org/apache/commons/pool2/ObjectPool.html" title="interface in org.apache.commons.pool2"><code>ObjectPool</code></a>, 
+<a href="../../../../org/apache/commons/pool2/impl/GenericKeyedObjectPool.html" title="class in org.apache.commons.pool2.impl"><code>GenericKeyedObjectPool</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#addObject-K-">addObject</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)</code>
+<div class="block">Create an object using the <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2"><code>factory</code></a> or
+ other implementation dependent mechanism, passivate it, and then place it
+ in the idle object pool.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">V</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject-K-">borrowObject</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)</code>
+<div class="block">Obtains an instance from this pool for the specified <code>key</code>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#clear--">clear</a></span>()</code>
+<div class="block">Clears the pool, removing all pooled instances (optional operation).</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#clear-K-">clear</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)</code>
+<div class="block">Clears the specified pool, removing all pooled instances corresponding to
+ the given <code>key</code> (optional operation).</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#close--">close</a></span>()</code>
+<div class="block">Close this pool, and free any resources associated with it.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumActive--">getNumActive</a></span>()</code>
+<div class="block">Returns the total number of instances currently borrowed from this pool but
+ not yet returned.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumActive-K-">getNumActive</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)</code>
+<div class="block">Returns the number of instances currently borrowed from but not yet
+ returned to the pool corresponding to the given <code>key</code>.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumIdle--">getNumIdle</a></span>()</code>
+<div class="block">Returns the total number of instances currently idle in this pool.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#getNumIdle-K-">getNumIdle</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)</code>
+<div class="block">Returns the number of instances corresponding to the given
+ <code>key</code> currently idle in this pool.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#invalidateObject-K-V-">invalidateObject</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key,
+                <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">V</a>&nbsp;obj)</code>
+<div class="block">Invalidates an object from the pool.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#returnObject-K-V-">returnObject</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key,
+            <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">V</a>&nbsp;obj)</code>
+<div class="block">Return an instance to the pool.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="borrowObject-java.lang.Object-">
+<!--   -->
+</a><a name="borrowObject-K-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>borrowObject</h4>
+<pre><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">V</a>&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.105">borrowObject</a>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)
+        throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>,
+               <a href="https://docs.oracle.com/javase/7/docs/api/java/util/NoSuchElementException.html?is-external=true" title="class or interface in java.util">NoSuchElementException</a>,
+               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></pre>
+<div class="block">Obtains an instance from this pool for the specified <code>key</code>.
+ <p>
+ Instances returned from this method will have been either newly created
+ with <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject-K-"><code>makeObject</code></a> or will be
+ a previously idle object and have been activated with
+ <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#activateObject-K-org.apache.commons.pool2.PooledObject-"><code>activateObject</code></a> and then
+ (optionally) validated with
+ <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#validateObject-K-org.apache.commons.pool2.PooledObject-"><code>validateObject</code></a>.
+ </p>
+ <p>
+ By contract, clients <strong>must</strong> return the borrowed object
+ using <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#returnObject-K-V-"><code>returnObject</code></a>,
+ <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#invalidateObject-K-V-"><code>invalidateObject</code></a>, or a related method as
+ defined in an implementation or sub-interface, using a <code>key</code>
+ that is <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>equivalent</code></a> to the one used to borrow the
+ instance in the first place.
+ </p>
+ <p>
+ The behaviour of this method when the pool has been exhausted is not
+ strictly specified (although it may be specified by implementations).
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key used to obtain the object</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance from this pool.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - after <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#close--"><code>close</code></a> has been called on this pool</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - when <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject-K-"><code>makeObject</code></a> throws an exception</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/NoSuchElementException.html?is-external=true" title="class or interface in java.util">NoSuchElementException</a></code> - when the pool is exhausted and cannot or will not return
+              another instance</dd>
+</dl>
+</li>
+</ul>
+<a name="returnObject-java.lang.Object-java.lang.Object-">
+<!--   -->
+</a><a name="returnObject-K-V-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>returnObject</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.126">returnObject</a>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key,
+                  <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">V</a>&nbsp;obj)
+           throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Return an instance to the pool. By contract, <code>obj</code>
+ <strong>must</strong> have been obtained using
+ <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject-K-"><code>borrowObject</code></a> or a related method as defined in an
+ implementation or sub-interface using a <code>key</code> that is
+ equivalent to the one used to borrow the instance in the first place.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key used to obtain the object</dd>
+<dd><code>obj</code> - a <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject-K-"><code>borrowed</code></a> instance to be returned.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if an attempt is made to return an object to the pool that
+              is in any state other than allocated (i.e. borrowed).
+              Attempting to return an object more than once or attempting
+              to return an object that was never borrowed from the pool
+              will trigger this exception.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if an instance cannot be returned to the pool</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidateObject-java.lang.Object-java.lang.Object-">
+<!--   -->
+</a><a name="invalidateObject-K-V-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invalidateObject</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.147">invalidateObject</a>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key,
+                      <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">V</a>&nbsp;obj)
+               throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Invalidates an object from the pool.
+ <p>
+ By contract, <code>obj</code> <strong>must</strong> have been obtained
+ using <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject-K-"><code>borrowObject</code></a> or a related method as defined
+ in an implementation or sub-interface using a <code>key</code> that is
+ equivalent to the one used to borrow the <code>Object</code> in the first
+ place.
+ </p>
+ <p>
+ This method should be used when an object that has been borrowed is
+ determined (due to an exception or other problem) to be invalid.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key used to obtain the object</dd>
+<dd><code>obj</code> - a <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject-K-"><code>borrowed</code></a> instance to be returned.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if the instance cannot be invalidated</dd>
+</dl>
+</li>
+</ul>
+<a name="addObject-java.lang.Object-">
+<!--   -->
+</a><a name="addObject-K-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addObject</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.164">addObject</a>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)
+        throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>,
+               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a>,
+               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
+<div class="block">Create an object using the <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2"><code>factory</code></a> or
+ other implementation dependent mechanism, passivate it, and then place it
+ in the idle object pool. <code>addObject</code> is useful for
+ "pre-loading" a pool with idle objects (Optional operation).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key a new instance should be added to</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - when <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject-K-"><code>KeyedPooledObjectFactory.makeObject(K)</code></a> fails.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - after <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#close--"><code>close()</code></a> has been called on this pool.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - when this pool cannot add new idle objects.</dd>
+</dl>
+</li>
+</ul>
+<a name="getNumIdle-java.lang.Object-">
+<!--   -->
+</a><a name="getNumIdle-K-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumIdle</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.176">getNumIdle</a>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)</pre>
+<div class="block">Returns the number of instances corresponding to the given
+ <code>key</code> currently idle in this pool. Returns a negative value if
+ this information is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key to query</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of instances corresponding to the given
+ <code>key</code> currently idle in this pool.</dd>
+</dl>
+</li>
+</ul>
+<a name="getNumActive-java.lang.Object-">
+<!--   -->
+</a><a name="getNumActive-K-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumActive</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.187">getNumActive</a>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)</pre>
+<div class="block">Returns the number of instances currently borrowed from but not yet
+ returned to the pool corresponding to the given <code>key</code>.
+ Returns a negative value if this information is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key to query</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of instances currently borrowed from but not yet
+ returned to the pool corresponding to the given <code>key</code>.
+=</dd>
+</dl>
+</li>
+</ul>
+<a name="getNumIdle--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumIdle</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.194">getNumIdle</a>()</pre>
+<div class="block">Returns the total number of instances currently idle in this pool.
+ Returns a negative value if this information is not available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the total number of instances currently idle in this pool.
+ =</dd>
+</dl>
+</li>
+</ul>
+<a name="getNumActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumActive</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.203">getNumActive</a>()</pre>
+<div class="block">Returns the total number of instances currently borrowed from this pool but
+ not yet returned. Returns a negative value if this information is not
+ available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the total number of instances currently borrowed from this pool but
+ not yet returned.</dd>
+</dl>
+</li>
+</ul>
+<a name="clear--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clear</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.213">clear</a>()
+    throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>,
+           <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
+<div class="block">Clears the pool, removing all pooled instances (optional operation).</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - when this implementation doesn't
+                                       support the operation</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if the pool cannot be cleared</dd>
+</dl>
+</li>
+</ul>
+<a name="clear-java.lang.Object-">
+<!--   -->
+</a><a name="clear-K-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clear</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.226">clear</a>(<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="type parameter in KeyedObjectPool">K</a>&nbsp;key)
+    throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>,
+           <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
+<div class="block">Clears the specified pool, removing all pooled instances corresponding to
+ the given <code>key</code> (optional operation).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key to clear</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - when this implementation doesn't
+                                       support the operation</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if the key cannot be cleared</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedObjectPool.html#line.240">close</a>()</pre>
+<div class="block">Close this pool, and free any resources associated with it.
+ <p>
+ Calling <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#addObject-K-"><code>addObject</code></a> or
+ <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject-K-"><code>borrowObject</code></a> after invoking this method on a pool
+ will cause them to throw an <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang"><code>IllegalStateException</code></a>.
+ </p>
+ <p>
+ Implementations should silently fail if not all resources can be freed.
+ </p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/KeyedObjectPool.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/commons/pool2/BasePooledObjectFactory.html" title="class in org.apache.commons.pool2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/commons/pool2/KeyedObjectPool.html" target="_top">Frames</a></li>
+<li><a href="KeyedObjectPool.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
\ No newline at end of file

Added: websites/production/commons/content/proper/commons-pool/api-2.7.0/org/apache/commons/pool2/KeyedPooledObjectFactory.html
==============================================================================
--- websites/production/commons/content/proper/commons-pool/api-2.7.0/org/apache/commons/pool2/KeyedPooledObjectFactory.html (added)
+++ websites/production/commons/content/proper/commons-pool/api-2.7.0/org/apache/commons/pool2/KeyedPooledObjectFactory.html Mon Jul 29 15:01:36 2019
@@ -0,0 +1,435 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>KeyedPooledObjectFactory (Apache Commons Pool 2.6.2 API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="KeyedPooledObjectFactory (Apache Commons Pool 2.6.2 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/KeyedPooledObjectFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/commons/pool2/ObjectPool.html" title="interface in org.apache.commons.pool2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/commons/pool2/KeyedPooledObjectFactory.html" target="_top">Frames</a></li>
+<li><a href="KeyedPooledObjectFactory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.commons.pool2</div>
+<h2 title="Interface KeyedPooledObjectFactory" class="title">Interface KeyedPooledObjectFactory&lt;K,V&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - The type of keys managed by this factory.</dd>
+<dd><code>V</code> - Type of element managed by this factory.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/commons/pool2/BaseKeyedPooledObjectFactory.html" title="class in org.apache.commons.pool2">BaseKeyedPooledObjectFactory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/apache/commons/pool2/KeyedPooledObjectFactory.html#line.77">KeyedPooledObjectFactory</a>&lt;K,V&gt;</pre>
+<div class="block">An interface defining life-cycle methods for
+ instances to be served by a <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2"><code>KeyedObjectPool</code></a>.
+ <p>
+ By contract, when an <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2"><code>KeyedObjectPool</code></a>
+ delegates to a <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2"><code>KeyedPooledObjectFactory</code></a>,
+ </p>
+ <ol>
+  <li>
+   <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject-K-"><code>makeObject(K)</code></a> is called whenever a new instance is needed.
+  </li>
+  <li>
+   <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#activateObject-K-org.apache.commons.pool2.PooledObject-"><code>activateObject(K, org.apache.commons.pool2.PooledObject&lt;V&gt;)</code></a> is invoked on every instance that has been
+   <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#passivateObject-K-org.apache.commons.pool2.PooledObject-"><code>passivated</code></a> before it is
+   <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject-K-"><code>borrowed</code></a> from the pool.
+  </li>
+  <li>
+   <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#validateObject-K-org.apache.commons.pool2.PooledObject-"><code>validateObject(K, org.apache.commons.pool2.PooledObject&lt;V&gt;)</code></a> may be invoked on <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#activateObject-K-org.apache.commons.pool2.PooledObject-"><code>activated</code></a>
+   instances to make sure they can be
+   <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#borrowObject-K-"><code>borrowed</code></a> from the pool.
+   <code>validateObject</code> may also be used to test an
+   instance being <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#returnObject-K-V-"><code>returned</code></a> to the pool
+   before it is <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#passivateObject-K-org.apache.commons.pool2.PooledObject-"><code>passivated</code></a>. It will only be invoked
+   on an activated instance.
+  </li>
+  <li>
+   <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#passivateObject-K-org.apache.commons.pool2.PooledObject-"><code>passivateObject</code></a>
+   is invoked on every instance when it is returned to the pool.
+  </li>
+  <li>
+   <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#destroyObject-K-org.apache.commons.pool2.PooledObject-"><code>destroyObject</code></a>
+   is invoked on every instance when it is being "dropped" from the
+   pool (whether due to the response from <code>validateObject</code>,
+   or for reasons specific to the pool implementation.) There is no
+   guarantee that the instance being destroyed will
+   be considered active, passive or in a generally consistent state.
+  </li>
+ </ol>
+ <a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="interface in org.apache.commons.pool2"><code>KeyedPooledObjectFactory</code></a> must be thread-safe. The only promise
+ an <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2"><code>KeyedObjectPool</code></a> makes is that the same instance of an object will
+ not be passed to more than one method of a
+ <code>KeyedPoolableObjectFactory</code> at a time.
+ <p>
+ While clients of a <a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2"><code>KeyedObjectPool</code></a> borrow and return instances of
+ the underlying value type V, the factory methods act on instances of
+ <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2"><code>PooledObject&lt;V&gt;</code></a>.  These are the object wrappers that
+ pools use to track and maintain state informations about the objects that
+ they manage.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2"><code>KeyedObjectPool</code></a>, 
+<a href="../../../../org/apache/commons/pool2/BaseKeyedPooledObjectFactory.html" title="class in org.apache.commons.pool2"><code>BaseKeyedPooledObjectFactory</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#activateObject-K-org.apache.commons.pool2.PooledObject-">activateObject</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key,
+              <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;&nbsp;p)</code>
+<div class="block">Reinitialize an instance to be returned by the pool.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#destroyObject-K-org.apache.commons.pool2.PooledObject-">destroyObject</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key,
+             <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;&nbsp;p)</code>
+<div class="block">Destroy an instance no longer needed by the pool.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#makeObject-K-">makeObject</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key)</code>
+<div class="block">Create an instance that can be served by the pool and
+ wrap it in a <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2"><code>PooledObject</code></a> to be managed by the pool.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#passivateObject-K-org.apache.commons.pool2.PooledObject-">passivateObject</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key,
+               <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;&nbsp;p)</code>
+<div class="block">Uninitialize an instance to be returned to the idle object pool.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#validateObject-K-org.apache.commons.pool2.PooledObject-">validateObject</a></span>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key,
+              <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;&nbsp;p)</code>
+<div class="block">Ensures that the instance is safe to be returned by the pool.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="makeObject-java.lang.Object-">
+<!--   -->
+</a><a name="makeObject-K-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>makeObject</h4>
+<pre><a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedPooledObjectFactory.html#line.91">makeObject</a>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key)
+                    throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Create an instance that can be served by the pool and
+ wrap it in a <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2"><code>PooledObject</code></a> to be managed by the pool.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key used when constructing the object</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <code>PooledObject</code> wrapping an instance that can
+ be served by the pool.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if there is a problem creating a new instance,
+    this will be propagated to the code requesting an object.</dd>
+</dl>
+</li>
+</ul>
+<a name="destroyObject-java.lang.Object-org.apache.commons.pool2.PooledObject-">
+<!--   -->
+</a><a name="destroyObject-K-org.apache.commons.pool2.PooledObject-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>destroyObject</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedPooledObjectFactory.html#line.114">destroyObject</a>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key,
+                   <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;&nbsp;p)
+            throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Destroy an instance no longer needed by the pool.
+ <p>
+ It is important for implementations of this method to be aware that there
+ is no guarantee about what state <code>obj</code> will be in and the
+ implementation should be prepared to handle unexpected errors.
+ </p>
+ <p>
+ Also, an implementation must take in to consideration that instances lost
+ to the garbage collector may never be destroyed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key used when selecting the instance</dd>
+<dd><code>p</code> - a <code>PooledObject</code> wrapping the instance to be destroyed</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - should be avoided as it may be swallowed by
+    the pool implementation.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#validateObject-K-org.apache.commons.pool2.PooledObject-"><code>validateObject(K, org.apache.commons.pool2.PooledObject&lt;V&gt;)</code></a>, 
+<a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html#invalidateObject-K-V-"><code>KeyedObjectPool.invalidateObject(K, V)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="validateObject-java.lang.Object-org.apache.commons.pool2.PooledObject-">
+<!--   -->
+</a><a name="validateObject-K-org.apache.commons.pool2.PooledObject-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validateObject</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedPooledObjectFactory.html#line.125">validateObject</a>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key,
+                       <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;&nbsp;p)</pre>
+<div class="block">Ensures that the instance is safe to be returned by the pool.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key used when selecting the object</dd>
+<dd><code>p</code> - a <code>PooledObject</code> wrapping the instance to be validated</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>false</code> if <code>obj</code> is not valid and should
+         be dropped from the pool, <code>true</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="activateObject-java.lang.Object-org.apache.commons.pool2.PooledObject-">
+<!--   -->
+</a><a name="activateObject-K-org.apache.commons.pool2.PooledObject-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>activateObject</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedPooledObjectFactory.html#line.138">activateObject</a>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key,
+                    <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;&nbsp;p)
+             throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Reinitialize an instance to be returned by the pool.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key used when selecting the object</dd>
+<dd><code>p</code> - a <code>PooledObject</code> wrapping the instance to be activated</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if there is a problem activating <code>obj</code>,
+    this exception may be swallowed by the pool.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#destroyObject-K-org.apache.commons.pool2.PooledObject-"><code>destroyObject(K, org.apache.commons.pool2.PooledObject&lt;V&gt;)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a name="passivateObject-java.lang.Object-org.apache.commons.pool2.PooledObject-">
+<!--   -->
+</a><a name="passivateObject-K-org.apache.commons.pool2.PooledObject-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>passivateObject</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/commons/pool2/KeyedPooledObjectFactory.html#line.151">passivateObject</a>(<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">K</a>&nbsp;key,
+                     <a href="../../../../org/apache/commons/pool2/PooledObject.html" title="interface in org.apache.commons.pool2">PooledObject</a>&lt;<a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html" title="type parameter in KeyedPooledObjectFactory">V</a>&gt;&nbsp;p)
+              throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Uninitialize an instance to be returned to the idle object pool.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key used when selecting the object</dd>
+<dd><code>p</code> - a <code>PooledObject</code> wrapping the instance to be passivated</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if there is a problem passivating <code>obj</code>,
+    this exception may be swallowed by the pool.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../org/apache/commons/pool2/KeyedPooledObjectFactory.html#destroyObject-K-org.apache.commons.pool2.PooledObject-"><code>destroyObject(K, org.apache.commons.pool2.PooledObject&lt;V&gt;)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/KeyedPooledObjectFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/commons/pool2/KeyedObjectPool.html" title="interface in org.apache.commons.pool2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/commons/pool2/ObjectPool.html" title="interface in org.apache.commons.pool2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/commons/pool2/KeyedPooledObjectFactory.html" target="_top">Frames</a></li>
+<li><a href="KeyedPooledObjectFactory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
\ No newline at end of file