This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch POOL_2_X
in repository https://gitbox.apache.org/repos/asf/commons-pool.git
The following commit(s) were added to refs/heads/POOL_2_X by this push:
new f9a5b907 Prepare for the next release candidate
f9a5b907 is described below
commit f9a5b9072e60ddccf9cdfdf2848f5f005e1608bf
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Dec 6 03:09:26 2025 +0000
Prepare for the next release candidate
---
CONTRIBUTING.md | 4 +--
README.md | 8 ++---
RELEASE-NOTES.txt | 67 ++++++++++++++++++++++++++++++++++++++++
pom.xml | 2 +-
src/changes/changes.xml | 2 +-
src/changes/release-notes.vm | 2 +-
src/site/xdoc/download_pool.xml | 30 +++++++++---------
src/site/xdoc/issue-tracking.xml | 2 +-
src/site/xdoc/mail-lists.xml | 2 +-
9 files changed, 93 insertions(+), 26 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5a1eaea7..07b40c5a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -61,11 +61,11 @@ Making Changes
+ Create a _topic branch_ for your isolated work.
* Usually you should base your branch from the `master` branch.
- * A good topic branch name can be the JIRA bug ID plus a keyword, for
example, `POOL-123-InputStream`.
+ * A good topic branch name can be the JIRA bug ID plus a keyword, e.g.
`POOL-123-InputStream`.
* If you have submitted multiple JIRA issues, try to maintain separate
branches and pull requests.
+ Make commits of logical units.
* Make sure your commit messages are meaningful and in the proper format.
Your commit message should contain the key of the JIRA issue.
- * For example, `[POOL-123] Close input stream earlier`
+ * For example, `[POOL-123] Close input stream sooner`
+ Respect the original code style:
+ Only use spaces for indentation; you can check for unnecessary whitespace
with `git diff` before committing.
+ Create minimal diffs - disable _On Save_ actions like _Reformat Source
Code_ or _Organize Imports_. If you feel the source code should be reformatted
create a separate PR for this change first.
diff --git a/README.md b/README.md
index b33d81f6..55b5c12b 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ Apache Commons Pool
[](https://github.com/apache/commons-pool/actions/workflows/maven.yml)
[](https://search.maven.org/artifact/org.apache.commons/commons-pool2)
-[](https://javadoc.io/doc/org.apache.commons/commons-pool2/2.12.1)
+[](https://javadoc.io/doc/org.apache.commons/commons-pool2/2.13.0)
[](https://github.com/apache/commons-pool/actions/workflows/codeql-analysis.yml)
[](https://api.securityscorecards.dev/projects/github.com/apache/commons-pool)
@@ -68,7 +68,7 @@ Alternatively, you can pull it from the central Maven
repositories:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
- <version>2.12.1</version>
+ <version>2.13.0</version>
</dependency>
```
@@ -89,8 +89,8 @@ There are some guidelines which will make applying PRs easier
for us:
+ Respect the existing code style for each file.
+ Create minimal diffs - disable on save actions like reformat source code or
organize imports. If you feel the source code should be reformatted create a
separate PR for this change.
+ Provide JUnit tests for your changes and make sure your changes don't break
any existing tests by running `mvn`.
-+ Before you pushing a PR, run `mvn` (by itself), this runs the default goal,
which contains all build checks.
-+ To see the code coverage report, regardless of coverage failures, run `mvn
clean site -Dcommons.jacoco.haltOnFailure=false`
++ Before you push a PR, run `mvn` (without arguments). This runs the default
goal which contains all build checks.
++ To see the code coverage report, regardless of coverage failures, run `mvn
clean site -Dcommons.jacoco.haltOnFailure=false -Pjacoco`
If you plan to contribute on a regular basis, please consider filing a
[contributor license agreement](https://www.apache.org/licenses/#clas).
You can learn more about contributing via GitHub in our [contribution
guidelines](CONTRIBUTING.md).
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index d6f0f2f7..b1a27677 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,3 +1,70 @@
+Apache Commons Pool 2.13.0 Release Notes
+----------------------------------------
+
+The Apache Commons Pool team is pleased to announce the release of Apache
Commons Pool 2.13.0.
+
+Apache Commons Pool provides an object-pooling API and several object-pool
implementations.
+Version 2 contains a completely rewritten pooling implementation compared to
the 1.x series.
+In addition to performance and scalability improvements, version 2 includes
robust instance
+tracking and pool monitoring.
+
+Version 2.7.x and up requires Java 8 or above.
+Version 2.6.x requires Java 7 or above.
+Version 2.5.x requires Java 7 or above.
+Version 2.0 requires 6 or above.
+
+NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean,
GenericKeyedObjectPoolMXBean,
+ and GenericKeyedObjectPoolMXBean) exist only to define the attributes
and methods
+ that will be made available via JMX. Clients must not implement them as
+ they are subject to change between major, minor, and patch version
releases of
+ Commons Pool. Clients that implement any of these interfaces may not
+ be able to upgrade to a new minor or patch release without requiring code
+ changes.
+
+${d}
+
+Changes in version 2.13.0 include:
+
+New features:
+o Add org.apache.commons.pool2.PooledObject.nonNull(PooledObject).
Thanks to Gary Gregory.
+o Add
org.apache.commons.pool2.PooledObject.getObject(PooledObject). Thanks to Gary
Gregory.
+o Made statistics collection optional in BaseGenericObjectPool
#429. Thanks to Pratyay, Gary Gregory.
+
+Fixed Bugs:
+o POOL-424: GenericObjectPool.invalidateObject() can leave other threads
waiting to borrow hanging.
+ The fix for this issue changes behavior of invalidateObject.
This method now always tries to add a new instance
+ to the pool to replace the invalidated and destroyed instance.
As a result of this change, abandoned object
+ removal now attemps to replace abandoned objects. Thanks to
Steven Adams.
+o POOL-425: GenericObjectPool addObject does not respect maxIdle.
+o POOL-350: Make placement of calls to GKOP reuseCapacity configurable.
+o POOL-290: TestSoftRefOutOfMemory (unit test) can loop infinitely on
failure. Thanks to Serge Angelov.
+o POOL-419: GenericObjectPool counters and object collections can be
corrupted when returnObject and invalidate are invoked concurrently by client
threads on the same pooled object. Thanks to Raju Gupta, Phil Steitz.
+o POOL-421: GenericObjectPool addObject should return immediately when there
is no capacity to add. Thanks to Phil Steitz.
+o POOL-420: The maximum wait time for GenericKeyedObjectPool.borrowObject(*)
may exceed configured maximum wait time. This is the same issue as POOL-418,
but for GKOP.
+ Also included in this fix is a change to addObject that prevents
it from waiting for capacity to create. That method now returns immediately
when there is no capcity to add to the pool under the given key. Thanks to Phil
Steitz.
+o Remove -nouses directive from maven-bundle-plugin. OSGi package
imports now state 'uses' definitions for package imports, this doesn't affect
JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory.
+o POOL-418: The maximum wait time for GenericObjectPool.borrowObject(*) may
exceed expectations due to a spurious thread wakeup.
+ The remaining duration was incorrectly calculated and the method
did not end up waiting long enough.
+ Recompute the remaining duration an additional time when we block
when exhausted. Thanks to Gary Gregory.
+o Fix site link from the About page to the Download page, see also
#387. Thanks to Wei Guo, Gary Gregory.
+o Operation on the "idleHighWaterMark" shared variable in
"ErodingFactor" class is not atomic
[org.apache.commons.pool2.PoolUtils$ErodingFactor] At PoolUtils.java:[line 98]
AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE. Thanks to Gary Gregory.
+o org.apache.commons.pool2.impl.GenericObjectPool.create(Duration)
should normalize a negative duration to zero. Thanks to Gary Gregory.
+o Fix potential ConcurrentModificationException in EvictionTimer
thread clean-up. Thanks to Coverity Scan.
+o Fix potential ConcurrentModificationException in EvictionTimer
tasks. Thanks to Coverity Scan.
+
+Changes:
+o Bump org.apache.commons:commons-parent from 79 to 93. Thanks to
Gary Gregory.
+o [test] Bump commons-lang3 from 3.17.0 to 3.20.0. Thanks to Gary
Gregory.
+
+
+For complete information on Apache Commons Pool, including instructions on how
to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Pool website:
+
+https://commons.apache.org/proper/commons-pool/
+
+Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi
+
+-----------------------------------------------------------------------------------------------
Apache Commons Pool 2.12.1 Release Notes
----------------------------------------
diff --git a/pom.xml b/pom.xml
index c45c77ce..dfa7da97 100644
--- a/pom.xml
+++ b/pom.xml
@@ -88,7 +88,7 @@
<commons.release.branch>release-2.x</commons.release.branch>
<commons.componentid>pool</commons.componentid>
<commons.module.name>org.apache.commons.pool2</commons.module.name>
- <commons.rc.version>RC3</commons.rc.version>
+ <commons.rc.version>RC1</commons.rc.version>
<checkstyle.suppress.file>${basedir}/src/conf/checkstyle-suppressions.xml</checkstyle.suppress.file>
<!-- Java 8 -->
<commons.release.version>2.13.0</commons.release.version>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3d3ab180..18aed084 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -45,7 +45,7 @@ The <action> type attribute can be add,update,fix,remove.
<title>Apache Commons Pool Release Notes</title>
</properties>
<body>
- <release version="2.13.0" date="YYYY-MM-DD" description="This is a feature
and maintenance release. Java 8 or later is required.">
+ <release version="2.13.0" date="2025-12-06" description="This is a feature
and maintenance release. Java 8 or later is required.">
<!-- FIX -->
<action type="fix" issue="POOL-424" dev="psteitz" due-to="Steven
Adams">GenericObjectPool.invalidateObject() can leave other threads waiting to
borrow hanging.
The fix for this issue changes behavior of invalidateObject. This
method now always tries to add a new instance
diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm
index d13be39c..74667386 100644
--- a/src/changes/release-notes.vm
+++ b/src/changes/release-notes.vm
@@ -15,7 +15,7 @@
## specific language governing permissions and limitations
## under the License.
${project.name} ${version} Release Notes
-------------------------------------------------
+----------------------------------------
The ${developmentTeam} is pleased to announce the release of ${project.name}
${version}.
diff --git a/src/site/xdoc/download_pool.xml b/src/site/xdoc/download_pool.xml
index b42d0968..089ce449 100644
--- a/src/site/xdoc/download_pool.xml
+++ b/src/site/xdoc/download_pool.xml
@@ -58,7 +58,7 @@ limitations under the License.
-->
<document xmlns="http://maven.apache.org/XDOC/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="https://maven.apache.org/XDOC/2.0
https://maven.apache.org/xsd/xdoc-2.0.xsd">
+ xsi:schemaLocation="http://maven.apache.org/XDOC/2.0
https://maven.apache.org/xsd/xdoc-2.0.xsd">
<properties>
<title>Download Apache Commons Pool</title>
<author email="[email protected]">Apache Commons Team</author>
@@ -81,7 +81,7 @@ limitations under the License.
mirrors (at the end of the mirrors list) that should be
available.
<br></br>
- [if-any logo]<a href="[link]"><img align="right" src="[logo]"
border="0"></img></a>[end]
+ [if-any logo]<a href="[link]"><img align="right" src="[logo]"
border="0" alt="Logo"></img></a>[end]
</p>
<form action="[location]" method="get" id="SelectMirror">
@@ -115,32 +115,32 @@ limitations under the License.
</p>
</subsection>
</section>
- <section name="Apache Commons Pool 2.12.1 (Java 8 or above)">
+ <section name="Apache Commons Pool 2.13.0 (Java 8 or above)">
<subsection name="Binaries">
<table>
<tr>
- <td><a
href="[preferred]/commons/pool/binaries/commons-pool2-2.12.1-bin.tar.gz">commons-pool2-2.12.1-bin.tar.gz</a></td>
- <td><a
href="https://downloads.apache.org/commons/pool/binaries/commons-pool2-2.12.1-bin.tar.gz.sha512">sha512</a></td>
- <td><a
href="https://downloads.apache.org/commons/pool/binaries/commons-pool2-2.12.1-bin.tar.gz.asc">pgp</a></td>
+ <td><a
href="[preferred]/commons/pool/binaries/commons-pool2-2.13.0-bin.tar.gz">commons-pool2-2.13.0-bin.tar.gz</a></td>
+ <td><a
href="https://downloads.apache.org/commons/pool/binaries/commons-pool2-2.13.0-bin.tar.gz.sha512">sha512</a></td>
+ <td><a
href="https://downloads.apache.org/commons/pool/binaries/commons-pool2-2.13.0-bin.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a
href="[preferred]/commons/pool/binaries/commons-pool2-2.12.1-bin.zip">commons-pool2-2.12.1-bin.zip</a></td>
- <td><a
href="https://downloads.apache.org/commons/pool/binaries/commons-pool2-2.12.1-bin.zip.sha512">sha512</a></td>
- <td><a
href="https://downloads.apache.org/commons/pool/binaries/commons-pool2-2.12.1-bin.zip.asc">pgp</a></td>
+ <td><a
href="[preferred]/commons/pool/binaries/commons-pool2-2.13.0-bin.zip">commons-pool2-2.13.0-bin.zip</a></td>
+ <td><a
href="https://downloads.apache.org/commons/pool/binaries/commons-pool2-2.13.0-bin.zip.sha512">sha512</a></td>
+ <td><a
href="https://downloads.apache.org/commons/pool/binaries/commons-pool2-2.13.0-bin.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
<subsection name="Source">
<table>
<tr>
- <td><a
href="[preferred]/commons/pool/source/commons-pool2-2.12.1-src.tar.gz">commons-pool2-2.12.1-src.tar.gz</a></td>
- <td><a
href="https://downloads.apache.org/commons/pool/source/commons-pool2-2.12.1-src.tar.gz.sha512">sha512</a></td>
- <td><a
href="https://downloads.apache.org/commons/pool/source/commons-pool2-2.12.1-src.tar.gz.asc">pgp</a></td>
+ <td><a
href="[preferred]/commons/pool/source/commons-pool2-2.13.0-src.tar.gz">commons-pool2-2.13.0-src.tar.gz</a></td>
+ <td><a
href="https://downloads.apache.org/commons/pool/source/commons-pool2-2.13.0-src.tar.gz.sha512">sha512</a></td>
+ <td><a
href="https://downloads.apache.org/commons/pool/source/commons-pool2-2.13.0-src.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a
href="[preferred]/commons/pool/source/commons-pool2-2.12.1-src.zip">commons-pool2-2.12.1-src.zip</a></td>
- <td><a
href="https://downloads.apache.org/commons/pool/source/commons-pool2-2.12.1-src.zip.sha512">sha512</a></td>
- <td><a
href="https://downloads.apache.org/commons/pool/source/commons-pool2-2.12.1-src.zip.asc">pgp</a></td>
+ <td><a
href="[preferred]/commons/pool/source/commons-pool2-2.13.0-src.zip">commons-pool2-2.13.0-src.zip</a></td>
+ <td><a
href="https://downloads.apache.org/commons/pool/source/commons-pool2-2.13.0-src.zip.sha512">sha512</a></td>
+ <td><a
href="https://downloads.apache.org/commons/pool/source/commons-pool2-2.13.0-src.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
diff --git a/src/site/xdoc/issue-tracking.xml b/src/site/xdoc/issue-tracking.xml
index 8d4bad32..ee99de56 100644
--- a/src/site/xdoc/issue-tracking.xml
+++ b/src/site/xdoc/issue-tracking.xml
@@ -43,7 +43,7 @@ limitations under the License.
-->
<document xmlns="http://maven.apache.org/XDOC/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="https://maven.apache.org/XDOC/2.0
https://maven.apache.org/xsd/xdoc-2.0.xsd">
+ xsi:schemaLocation="http://maven.apache.org/XDOC/2.0
https://maven.apache.org/xsd/xdoc-2.0.xsd">
<properties>
<title>Apache Commons Pool Issue tracking</title>
<author email="[email protected]">Apache Commons Team</author>
diff --git a/src/site/xdoc/mail-lists.xml b/src/site/xdoc/mail-lists.xml
index c1af08d2..59156542 100644
--- a/src/site/xdoc/mail-lists.xml
+++ b/src/site/xdoc/mail-lists.xml
@@ -41,7 +41,7 @@ limitations under the License.
-->
<document xmlns="http://maven.apache.org/XDOC/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="https://maven.apache.org/XDOC/2.0
https://maven.apache.org/xsd/xdoc-2.0.xsd">
+ xsi:schemaLocation="http://maven.apache.org/XDOC/2.0
https://maven.apache.org/xsd/xdoc-2.0.xsd">
<properties>
<title>Apache Commons Pool Mailing Lists</title>
<author email="[email protected]">Apache Commons Team</author>