From 5a0edae7bc2958190c6484dbf9cabee63bf58201 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 08:34:34 -0500 Subject: [PATCH 01/44] Bump actions/upload-artifact from 4.4.3 to 4.5.0 (#376) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.3 to 4.5.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882...6f51ac03b9356f520e9adb1b1b7802705f340c2b) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/scorecards-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 35812f16bd..7d0f7e40ae 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -57,7 +57,7 @@ jobs: publish_results: true - name: "Upload artifact" - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # 4.4.3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # 4.5.0 with: name: SARIF file path: results.sarif From 339880b63b92de45c4acc7fbfd6f2d41e8352b9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 08:34:47 -0500 Subject: [PATCH 02/44] Bump actions/setup-java from 4.5.0 to 4.6.0 (#375) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/8df1039502a15bceb9433410b1a100fbe190c53b...7a6d8a8234af8eb26422e24e3006232cccaa061b) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/maven-pool2.yml | 2 +- .github/workflows/maven-pool3.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4bda36bc1a..5a09666605 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -54,7 +54,7 @@ jobs: key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 + - uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 with: java-version: 17 distribution: 'temurin' diff --git a/.github/workflows/maven-pool2.yml b/.github/workflows/maven-pool2.yml index 5274ca3acb..98731a38d6 100644 --- a/.github/workflows/maven-pool2.yml +++ b/.github/workflows/maven-pool2.yml @@ -50,7 +50,7 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 + uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 with: distribution: 'temurin' java-version: ${{ matrix.java }} diff --git a/.github/workflows/maven-pool3.yml b/.github/workflows/maven-pool3.yml index c91a6a863e..61be54f065 100644 --- a/.github/workflows/maven-pool3.yml +++ b/.github/workflows/maven-pool3.yml @@ -48,7 +48,7 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 + uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 with: distribution: 'temurin' java-version: ${{ matrix.java }} From 09bf6228e43b47f2cfda8749065de0e01f029aa6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 07:22:03 -0500 Subject: [PATCH 03/44] Bump github/codeql-action from 3.27.9 to 3.28.0 (#377) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.9 to 3.28.0. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/df409f7d9260372bd5f19e5b04e83cb3c43714ae...48ab28a6f5dbc2a99bf1e0131198dd8f1df78169) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 5a09666605..37ae42f411 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -61,7 +61,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@df409f7d9260372bd5f19e5b04e83cb3c43714ae # 3.27.9 + uses: github/codeql-action/init@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # 3.28.0 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -72,7 +72,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@df409f7d9260372bd5f19e5b04e83cb3c43714ae # 3.27.9 + uses: github/codeql-action/autobuild@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # 3.28.0 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -86,4 +86,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@df409f7d9260372bd5f19e5b04e83cb3c43714ae # 3.27.9 + uses: github/codeql-action/analyze@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # 3.28.0 diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 7d0f7e40ae..d4333c1cd6 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -64,6 +64,6 @@ jobs: retention-days: 5 - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@df409f7d9260372bd5f19e5b04e83cb3c43714ae # 3.27.9 + uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # 3.28.0 with: sarif_file: results.sarif From 3ebbee15724b4465e104785296addbe27af9e733 Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Wed, 1 Jan 2025 08:01:21 -0500 Subject: [PATCH 04/44] Update notice file copyright end date --- NOTICE.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NOTICE.txt b/NOTICE.txt index 43183fa73f..aeb2aaa9fc 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1,5 +1,5 @@ Apache Commons Pool -Copyright 2001-2024 The Apache Software Foundation +Copyright 2001-2025 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (https://www.apache.org/). From 43e607e2a7de68d0428233730da82e1d82d2475d Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Fri, 3 Jan 2025 10:16:29 -0500 Subject: [PATCH 05/44] Add Apache license header --- src/site/resources/profile.jacoco | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/site/resources/profile.jacoco b/src/site/resources/profile.jacoco index e69de29bb2..0314c63ff2 100644 --- a/src/site/resources/profile.jacoco +++ b/src/site/resources/profile.jacoco @@ -0,0 +1,16 @@ +// 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 +// +// https://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. From 7fcbabc9c976f5af164d2f814b4c3301eac62782 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Fri, 10 Jan 2025 07:57:21 -0500 Subject: [PATCH 06/44] Bump org.apache.commons:commons-parent from 78 to 79 --- pom.xml | 2 +- src/changes/changes.xml | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 557571618b..2093a055bd 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ org.apache.commons commons-parent - 78 + 79 commons-pool3 diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 5933e84dad..4c92854aab 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -37,10 +37,9 @@ and commit The type attribute can be add,update,fix,remove. --> - - + xsi:schemaLocation="http://maven.apache.org/changes/2.0.0 https://maven.apache.org/xsd/changes-2.0.0.xsd"> Apache Commons Pool Release Notes From c3716dbc7f556379d6ea0d70f7bc816d4a859873 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 08:32:15 -0500 Subject: [PATCH 07/44] Bump actions/upload-artifact from 4.5.0 to 4.6.0 (#379) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/6f51ac03b9356f520e9adb1b1b7802705f340c2b...65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/scorecards-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index d4333c1cd6..7decf002ef 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -57,7 +57,7 @@ jobs: publish_results: true - name: "Upload artifact" - uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # 4.5.0 + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # 4.6.0 with: name: SARIF file path: results.sarif From ca560a3479ec3d691c27b67f3af2eba7eff78a0a Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Fri, 10 Jan 2025 21:33:48 -0500 Subject: [PATCH 08/44] Make sure JAR files are readable in the TAR file See also https://issues.apache.org/jira/browse/BCEL-375 --- src/assembly/bin.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/assembly/bin.xml b/src/assembly/bin.xml index dea1cb7a0f..5c31e7d4de 100644 --- a/src/assembly/bin.xml +++ b/src/assembly/bin.xml @@ -37,6 +37,7 @@ *.jar + 644 target/site/apidocs From e119353316452055a9782152f983c32ad09be555 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Sat, 11 Jan 2025 08:15:06 -0500 Subject: [PATCH 09/44] Add comment for reproducible builds See https://maven.apache.org/guides/mini/guide-reproducible-builds.html --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 2093a055bd..93439fcccc 100644 --- a/pom.xml +++ b/pom.xml @@ -182,6 +182,7 @@ UTF-8 UTF-8 + 2024-02-01T03:27:02Z 17 17 From 3fbcdf5803edccb6c8fab79d81bee3f37e76606b Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Wed, 15 Jan 2025 10:03:12 -0500 Subject: [PATCH 10/44] Use HTTPS to fetch XSD files --- pom.xml | 2 +- src/assembly/bin.xml | 2 +- src/assembly/src-tar-gz.xml | 2 +- src/assembly/src-zip.xml | 2 +- src/conf/pmd-ruleset.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 2093a055bd..d83d555f22 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 diff --git a/src/assembly/bin.xml b/src/assembly/bin.xml index 5c31e7d4de..0a598cb5f4 100644 --- a/src/assembly/bin.xml +++ b/src/assembly/bin.xml @@ -16,7 +16,7 @@ --> + xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd"> bin tar.gz diff --git a/src/assembly/src-tar-gz.xml b/src/assembly/src-tar-gz.xml index baa0fd1c24..fbc391cfca 100644 --- a/src/assembly/src-tar-gz.xml +++ b/src/assembly/src-tar-gz.xml @@ -16,7 +16,7 @@ --> + xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd"> src tar.gz diff --git a/src/assembly/src-zip.xml b/src/assembly/src-zip.xml index 58f7e7510d..f309ca6d64 100644 --- a/src/assembly/src-zip.xml +++ b/src/assembly/src-zip.xml @@ -16,7 +16,7 @@ --> + xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd"> src zip diff --git a/src/conf/pmd-ruleset.xml b/src/conf/pmd-ruleset.xml index 108cf172d0..5e5248494d 100644 --- a/src/conf/pmd-ruleset.xml +++ b/src/conf/pmd-ruleset.xml @@ -16,7 +16,7 @@ limitations under the License. --> + xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.net/ruleset_2_0_0.xsd"> This ruleset checks the code for discouraged programming constructs. From 12341193870b2df770c6bc10eddf7cd5c70da5bc Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Wed, 15 Jan 2025 10:27:37 -0500 Subject: [PATCH 11/44] Change for force sync with Apache gitbox --- RELEASE-NOTES.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 9ae07eb5fe..75cd176311 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,4 +1,5 @@ - Apache Commons Pool 2.12.0 RELEASE NOTES +Apache Commons Pool 2.12.0 RELEASE NOTES +---------------------------------------- The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.12.0. From d7cfb6c8429cc3fd9e7f8084e973935394d99a0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 12:04:03 +0000 Subject: [PATCH 12/44] Bump github/codeql-action from 3.28.0 to 3.28.1 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.0 to 3.28.1. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/48ab28a6f5dbc2a99bf1e0131198dd8f1df78169...b6a472f63d85b9c78a3ac5e89422239fc15e9b3c) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 37ae42f411..e325ff7ba8 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -61,7 +61,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # 3.28.0 + uses: github/codeql-action/init@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # 3.28.1 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -72,7 +72,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # 3.28.0 + uses: github/codeql-action/autobuild@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # 3.28.1 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -86,4 +86,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # 3.28.0 + uses: github/codeql-action/analyze@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # 3.28.1 diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 7decf002ef..09918be5ae 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -64,6 +64,6 @@ jobs: retention-days: 5 - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 # 3.28.0 + uses: github/codeql-action/upload-sarif@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # 3.28.1 with: sarif_file: results.sarif From 26f7bbe814d2a0f0c7d58ebe70019329f661c172 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Sat, 18 Jan 2025 09:04:04 -0500 Subject: [PATCH 13/44] Move people to the bottom of the file --- pom.xml | 171 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 84 insertions(+), 87 deletions(-) diff --git a/pom.xml b/pom.xml index ad370bc30b..d34f98ca74 100644 --- a/pom.xml +++ b/pom.xml @@ -51,92 +51,6 @@ scm:git:https://gitbox.apache.org/repos/asf/commons-pool.git https://gitbox.apache.org/repos/asf?p=commons-pool.git - - - - Morgan Delagrange - morgand - - - - - Geir Magnusson - geirm - - - - - Craig McClanahan - craigmcc - - - - - Rodney Waldhoff - rwaldhoff - - - - - David Weinrich - dweinr1 - - - - - Dirk Verbeeck - dirkv - - - - - Robert Burrell Donkin - rdonkin - - The Apache Software Foundation - - - Sandy McArthur - sandymac - - The Apache Software Foundation - - - Simone Tripodi - simonetripodi - The Apache Software Foundation - - - ggregory - Gary Gregory - ggregory at apache.org - https://www.garygregory.com - The Apache Software Foundation - https://www.apache.org/ - - PMC Member - - America/New_York - - https://people.apache.org/~ggregory/img/garydgregory80.png - - - - Matt Sicker - mattsicker - The Apache Software Foundation - - - - - Todd Carmichael - toddc@concur.com - - - Arturo Bernal - - - cglib @@ -451,5 +365,88 @@ - + + + Morgan Delagrange + morgand + + + + + Geir Magnusson + geirm + + + + + Craig McClanahan + craigmcc + + + + + Rodney Waldhoff + rwaldhoff + + + + + David Weinrich + dweinr1 + + + + + Dirk Verbeeck + dirkv + + + + + Robert Burrell Donkin + rdonkin + + The Apache Software Foundation + + + Sandy McArthur + sandymac + + The Apache Software Foundation + + + Simone Tripodi + simonetripodi + The Apache Software Foundation + + + ggregory + Gary Gregory + ggregory at apache.org + https://www.garygregory.com + The Apache Software Foundation + https://www.apache.org/ + + PMC Member + + America/New_York + + https://people.apache.org/~ggregory/img/garydgregory80.png + + + + Matt Sicker + mattsicker + The Apache Software Foundation + + + + + Todd Carmichael + toddc@concur.com + + + Arturo Bernal + + From a298e2e5640c1c42495a80dc5a2692027c2d16f9 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Sat, 18 Jan 2025 09:40:55 -0500 Subject: [PATCH 14/44] Add missing Javadoc - Use final - Make package private, only used in tests --- .../impl/ResilientPooledObjectFactory.java | 53 ++++++++++--------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java index d8bb6886b9..909b357a7c 100644 --- a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java +++ b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java @@ -58,7 +58,7 @@ public class ResilientPooledObjectFactory implements Poo private Instant upStart; /** Exception counts */ @SuppressWarnings("rawtypes") - private ConcurrentHashMap exceptionCounts = new ConcurrentHashMap<>(); + private final ConcurrentHashMap exceptionCounts = new ConcurrentHashMap<>(); /** Whether or not the factory is "up" */ private boolean up = true; /** @@ -84,8 +84,8 @@ public class ResilientPooledObjectFactory implements Poo * @param lookBack length of time over which metrics are kept * @param timeBetweenChecks time between checks by the monitor thread */ - public ResilientPooledObjectFactory(PooledObjectFactory factory, - int logSize, Duration delay, Duration lookBack, Duration timeBetweenChecks) { + public ResilientPooledObjectFactory(final PooledObjectFactory factory, + final int logSize, final Duration delay, final Duration lookBack, final Duration timeBetweenChecks) { this.logSize = logSize; this.factory = factory; this.delay = delay; @@ -99,20 +99,25 @@ public ResilientPooledObjectFactory(PooledObjectFactory factory, * * @param factory PooledObjectFactory to wrap */ - public ResilientPooledObjectFactory(PooledObjectFactory factory) { + public ResilientPooledObjectFactory(final PooledObjectFactory factory) { this(factory, DEFAULT_LOG_SIZE, DEFAULT_DELAY, DEFAULT_LOOK_BACK, DEFAULT_TIME_BETWEEN_CHECKS); } - public void setPool(GenericObjectPool pool) { + /** + * Sets the underlying pool. For tests. + * + * @param pool the underlying pool. + */ + void setPool(final GenericObjectPool pool) { this.pool = pool; } /** * Set the time between monitor checks. * - * @param timeBetweenChecks + * @param timeBetweenChecks The time between monitor checks. */ - public void setTimeBetweenChecks(Duration timeBetweenChecks) { + public void setTimeBetweenChecks(final Duration timeBetweenChecks) { this.timeBetweenChecks = timeBetweenChecks; } @@ -121,7 +126,7 @@ public void setTimeBetweenChecks(Duration timeBetweenChecks) { * * @param logSize the number of makeObject events to keep in the log */ - public void setLogSize(int logSize) { + public void setLogSize(final int logSize) { this.logSize = logSize; } @@ -132,10 +137,10 @@ public void setLogSize(int logSize) { public PooledObject makeObject() throws E { final MakeEvent makeEvent = new MakeEvent(); try { - PooledObject obj = factory.makeObject(); + final PooledObject obj = factory.makeObject(); makeEvent.setSuccess(!PooledObject.isNull(obj)); return obj; - } catch (Throwable t) { + } catch (final Throwable t) { makeEvent.setSuccess(false); makeEvent.setException(t); exceptionCounts.put(t.getClass(), exceptionCounts.getOrDefault(t, 0) + 1); @@ -149,22 +154,22 @@ public PooledObject makeObject() throws E { // Delegate all other methods to the wrapped factory. @Override - public void destroyObject(PooledObject p) throws E { + public void destroyObject(final PooledObject p) throws E { factory.destroyObject(p); } @Override - public boolean validateObject(PooledObject p) { + public boolean validateObject(final PooledObject p) { return factory.validateObject(p); } @Override - public void activateObject(PooledObject p) throws E { + public void activateObject(final PooledObject p) throws E { factory.activateObject(p); } @Override - public void passivateObject(PooledObject p) throws E { + public void passivateObject(final PooledObject p) throws E { factory.passivateObject(p); } @@ -195,7 +200,7 @@ protected void runChecks() { while (makeObjectLog.size() > logSize) { makeObjectLog.poll(); } - for (MakeEvent makeEvent : makeObjectLog) { + for (final MakeEvent makeEvent : makeObjectLog) { if (!makeEvent.isSuccess()) { upOverLog = false; downStart = Instant.now(); @@ -242,7 +247,7 @@ public boolean isMonitorRunning() { * * @param timeBetweenChecks time between checks */ - public void startMonitor(Duration timeBetweenChecks) { + public void startMonitor(final Duration timeBetweenChecks) { this.timeBetweenChecks = timeBetweenChecks; startMonitor(); } @@ -277,7 +282,7 @@ public void stopMonitor() { class Adder extends Thread { private boolean killed = false; private boolean running = false; - private int MAX_FAILURES = 5; + private final int MAX_FAILURES = 5; private int failures = 0; @Override @@ -289,7 +294,7 @@ public void run() { if (pool.getNumWaiters() == 0 || pool.getNumActive() + pool.getNumIdle() == pool.getMaxTotal()) { kill(); } - } catch (Throwable e) { + } catch (final Throwable e) { failures++; if (failures > MAX_FAILURES) { kill(); @@ -298,7 +303,7 @@ public void run() { // Wait for delay try { sleep(delay.toMillis()); - } catch (InterruptedException e) { + } catch (final InterruptedException e) { killed = true; } } @@ -358,7 +363,7 @@ public boolean isSuccess() { * * @param success */ - public void setSuccess(boolean success) { + public void setSuccess(final boolean success) { this.success = success; } @@ -374,7 +379,7 @@ public Throwable getException() { * * @param exception */ - public void setException(Throwable exception) { + public void setException(final Throwable exception) { this.exception = exception; } @@ -396,9 +401,9 @@ public void run() { runChecks(); try { sleep(timeBetweenChecks.toMillis()); - } catch (InterruptedException e) { + } catch (final InterruptedException e) { monitoring = false; - } catch (Throwable e) { + } catch (final Throwable e) { monitoring = false; throw e; } @@ -453,7 +458,7 @@ public Duration getLookBack() { * @return a copy of the makeObject log */ public List getMakeObjectLog() { - ArrayList makeObjectLog = new ArrayList<>(); + final ArrayList makeObjectLog = new ArrayList<>(); return new ArrayList<>(makeObjectLog.stream().toList()); } From db1ecb191d6a00580ef258fc3b26bcdf37ebcf1a Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Sat, 18 Jan 2025 09:42:17 -0500 Subject: [PATCH 15/44] Remove extra whitespace --- pom.xml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/pom.xml b/pom.xml index d34f98ca74..8b92f7a488 100644 --- a/pom.xml +++ b/pom.xml @@ -20,32 +20,25 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - org.apache.commons commons-parent 79 - commons-pool3 3.0.0-SNAPSHOT Apache Commons Pool - 2001 The Apache Commons Object Pooling Library. - https://commons.apache.org/proper/commons-pool/ - jira https://issues.apache.org/jira/browse/POOL - GitHub https://github.com/apache/commons-pool/actions - scm:git:https://gitbox.apache.org/repos/asf/commons-pool.git scm:git:https://gitbox.apache.org/repos/asf/commons-pool.git @@ -83,7 +76,6 @@ test - @@ -92,7 +84,6 @@ scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-pool/ - UTF-8 UTF-8 @@ -113,12 +104,10 @@ 2.6.2 (Java 7 or above) - POOL 12310488 site-content net.sf.cglib.proxy;resolution:=optional,* - 2.11.1 true @@ -276,7 +265,6 @@ - @@ -349,7 +337,6 @@ - java16 From 66805ce1dd538426cae38d5cc3f72e79218d0b7c Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Sat, 18 Jan 2025 09:46:10 -0500 Subject: [PATCH 16/44] Fix is now in parent POM for org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19 --- pom.xml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/pom.xml b/pom.xml index 8b92f7a488..e065c30eab 100644 --- a/pom.xml +++ b/pom.xml @@ -137,20 +137,6 @@ true - - - org.apache.maven.plugins - maven-project-info-reports-plugin - ${commons.project-info.version} - - - - org.apache.bcel - bcel - 6.10.0 - - - org.apache.maven.plugins maven-checkstyle-plugin From b517bfefadc96da29acb86b8ed2e38e3f3cdde9c Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Sat, 18 Jan 2025 09:51:19 -0500 Subject: [PATCH 17/44] Make private field ResilientPooledObjectFactory.Adder.MAX_FAILURES static --- .../commons/pool3/impl/ResilientPooledObjectFactory.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java index 909b357a7c..65596f76ef 100644 --- a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java +++ b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java @@ -280,9 +280,11 @@ public void stopMonitor() { * */ class Adder extends Thread { + + private static final int MAX_FAILURES = 5; + private boolean killed = false; private boolean running = false; - private final int MAX_FAILURES = 5; private int failures = 0; @Override From 76cd031c26e8d6016732f83eca4a8677f5c8aa3f Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Sat, 18 Jan 2025 09:51:53 -0500 Subject: [PATCH 18/44] Don't initialize instance variables to their default values --- .../commons/pool3/impl/ResilientPooledObjectFactory.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java index 65596f76ef..8b10b527aa 100644 --- a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java +++ b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java @@ -283,9 +283,9 @@ class Adder extends Thread { private static final int MAX_FAILURES = 5; - private boolean killed = false; - private boolean running = false; - private int failures = 0; + private boolean killed; + private boolean running; + private int failures; @Override public void run() { From eae6d1bd8dd311e6727835a3199750bc42c63f96 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Sat, 18 Jan 2025 09:52:37 -0500 Subject: [PATCH 19/44] Don't initialize instance variables to their default values --- .../commons/pool3/impl/ResilientPooledObjectFactory.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java index 8b10b527aa..885bce3b20 100644 --- a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java +++ b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java @@ -38,6 +38,7 @@ * @param Type of exception that the factory may throw */ public class ResilientPooledObjectFactory implements PooledObjectFactory { + private static final int DEFAULT_LOG_SIZE = 10; private static final Duration DEFAULT_DELAY = Duration.ofSeconds(1); private static final Duration DEFAULT_LOOK_BACK = Duration.ofMinutes(5); @@ -65,13 +66,13 @@ public class ResilientPooledObjectFactory implements Poo * @return the factory wrapped by this resilient factory */ /** Whether or not the monitor thread is running */ - private boolean monitoring = false; + private boolean monitoring; /** Time to wait between object creations by the adder thread */ private final Duration delay; /** Time between monitor checks */ private Duration timeBetweenChecks = Duration.ofSeconds(10); /** Adder thread */ - private Adder adder = null; + private Adder adder; /** * Construct a ResilientPooledObjectFactory from a factory with specified From 0cff76494f14420f57324f2c867fdd060594a328 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Sat, 18 Jan 2025 17:38:01 -0500 Subject: [PATCH 20/44] Use simpler and better JUnit APIs --- pom.xml | 6 --- .../pool3/impl/TestDefaultPooledObject.java | 18 ++++----- .../pool3/impl/TestGenericObjectPool.java | 38 +++++++++---------- 3 files changed, 24 insertions(+), 38 deletions(-) diff --git a/pom.xml b/pom.xml index e065c30eab..70f17e2416 100644 --- a/pom.xml +++ b/pom.xml @@ -63,12 +63,6 @@ junit-jupiter test - - org.hamcrest - hamcrest-library - 3.0 - test - org.apache.commons commons-lang3 diff --git a/src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObject.java b/src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObject.java index e8db4ea520..64a37e9677 100644 --- a/src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObject.java +++ b/src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObject.java @@ -16,12 +16,10 @@ */ package org.apache.commons.pool3.impl; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.lessThan; -import static org.hamcrest.Matchers.lessThanOrEqualTo; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.time.Duration; import java.util.ArrayList; @@ -101,11 +99,8 @@ public void testInitialStateActiveDuration() throws InterruptedException { assertFalse(dpo.getActiveDuration().isNegative()); assertFalse(dpo.getActiveDuration().isZero()); // We use greaterThanOrEqualTo instead of equal because "now" many be different when each argument is evaluated. - assertThat(1L, lessThanOrEqualTo(2L)); // sanity check - assertThat(Duration.ZERO, lessThanOrEqualTo(Duration.ZERO.plusNanos(1))); // sanity check - assertThat(dpo.getActiveDuration(), lessThanOrEqualTo(dpo.getIdleDuration())); - // Deprecated - assertThat(dpo.getActiveDuration(), lessThanOrEqualTo(dpo.getActiveDuration())); + assertTrue(Duration.ZERO.compareTo(Duration.ZERO.plusNanos(1)) <= 0); // sanity check + assertTrue(dpo.getActiveDuration().compareTo(dpo.getIdleDuration()) <= 0); } @Test @@ -133,7 +128,8 @@ public void testInitialStateDuration() throws InterruptedException { final Duration duration2 = dpo.getFullDuration(); assertNotNull(duration2); assertFalse(duration2.isNegative()); - assertThat(duration1, lessThan(duration2)); + assertTrue(duration1.compareTo(duration2) < 0); + } @Test @@ -146,7 +142,7 @@ public void testInitialStateIdleDuration() throws InterruptedException { // In the initial state, the idle duration is the time between "now" and the last return, which is the creation time. assertFalse(dpo.getIdleDuration().isNegative()); assertFalse(dpo.getIdleDuration().isZero()); - // We use greaterThanOrEqualTo instead of equal because "now" many be different when each argument is evaluated. - assertThat(dpo.getIdleDuration(), lessThanOrEqualTo(dpo.getActiveDuration())); + // We use <= instead of equal because "now" many be different when each argument is evaluated. + assertTrue(dpo.getIdleDuration().compareTo(dpo.getActiveDuration()) <= 0); } } \ No newline at end of file diff --git a/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPool.java b/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPool.java index 3c78fca6f1..caa3afffdc 100644 --- a/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPool.java +++ b/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPool.java @@ -17,8 +17,6 @@ package org.apache.commons.pool3.impl; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.lessThanOrEqualTo; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -1134,9 +1132,9 @@ public void testBorrowTimings() throws Exception { final Instant lastReturnInstant1 = po.getLastReturnInstant(); final Instant lastUsedInstant1 = po.getLastUsedInstant(); - assertThat(po.getCreateInstant(), lessThanOrEqualTo(lastBorrowInstant1)); - assertThat(po.getCreateInstant(), lessThanOrEqualTo(lastReturnInstant1)); - assertThat(po.getCreateInstant(), lessThanOrEqualTo(lastUsedInstant1)); + assertTrue(po.getCreateInstant().compareTo(lastBorrowInstant1) <= 0); + assertTrue(po.getCreateInstant().compareTo(lastReturnInstant1) <= 0); + assertTrue(po.getCreateInstant().compareTo(lastUsedInstant1) <= 0); // Sleep MUST be "long enough" to detect that more than 0 milliseconds have // elapsed. @@ -1147,32 +1145,30 @@ public void testBorrowTimings() throws Exception { assertFalse(po.getActiveDuration().isZero()); // We use greaterThanOrEqualTo instead of equal because "now" many be different // when each argument is evaluated. - assertThat(1L, lessThanOrEqualTo(2L)); // sanity check - assertThat(Duration.ZERO, lessThanOrEqualTo(Duration.ZERO.plusNanos(1))); // sanity check - assertThat(po.getActiveDuration(), lessThanOrEqualTo(po.getIdleDuration())); - // Deprecated - assertThat(po.getActiveDuration(), lessThanOrEqualTo(po.getActiveDuration())); + assertTrue(Duration.ZERO.compareTo(Duration.ZERO.plusNanos(1)) <= 0); // sanity check + assertTrue(po.getActiveDuration().compareTo(po.getIdleDuration()) <= 0); + assertTrue(po.getActiveDuration().compareTo(po.getActiveDuration()) <= 0); // // TODO How to compare ID with AD since other tests may have touched the PO? - assertThat(po.getActiveDuration(), lessThanOrEqualTo(po.getIdleDuration())); + assertTrue(po.getActiveDuration().compareTo(po.getIdleDuration()) <= 0); // - assertThat(po.getCreateInstant(), lessThanOrEqualTo(po.getLastBorrowInstant())); - assertThat(po.getCreateInstant(), lessThanOrEqualTo(po.getLastReturnInstant())); - assertThat(po.getCreateInstant(), lessThanOrEqualTo(po.getLastUsedInstant())); + assertTrue(po.getCreateInstant().compareTo(po.getLastBorrowInstant()) <= 0); + assertTrue(po.getCreateInstant().compareTo(po.getLastReturnInstant()) <= 0); + assertTrue(po.getCreateInstant().compareTo(po.getLastUsedInstant()) <= 0); - assertThat(lastBorrowInstant1, lessThanOrEqualTo(po.getLastBorrowInstant())); - assertThat(lastReturnInstant1, lessThanOrEqualTo(po.getLastReturnInstant())); - assertThat(lastUsedInstant1, lessThanOrEqualTo(po.getLastUsedInstant())); + assertTrue(lastBorrowInstant1.compareTo(po.getLastBorrowInstant()) <= 0); + assertTrue(lastReturnInstant1.compareTo(po.getLastReturnInstant()) <= 0); + assertTrue(lastUsedInstant1.compareTo(po.getLastUsedInstant()) <= 0); genericObjectPool.returnObject(object); assertFalse(po.getActiveDuration().isNegative()); assertFalse(po.getActiveDuration().isZero()); - assertThat(po.getActiveDuration(), lessThanOrEqualTo(po.getActiveDuration())); + assertTrue(po.getActiveDuration().compareTo(po.getActiveDuration()) <= 0); - assertThat(lastBorrowInstant1, lessThanOrEqualTo(po.getLastBorrowInstant())); - assertThat(lastReturnInstant1, lessThanOrEqualTo(po.getLastReturnInstant())); - assertThat(lastUsedInstant1, lessThanOrEqualTo(po.getLastUsedInstant())); + assertTrue(lastBorrowInstant1.compareTo(po.getLastBorrowInstant()) <= 0); + assertTrue(lastReturnInstant1.compareTo(po.getLastReturnInstant()) <= 0); + assertTrue(lastUsedInstant1.compareTo(po.getLastUsedInstant()) <= 0); } /** From a661f58a9dc399ffcb75ab119dde356bbb6756f0 Mon Sep 17 00:00:00 2001 From: Sebb Date: Sat, 18 Jan 2025 23:25:17 +0000 Subject: [PATCH 21/44] chmod -x --- RELEASE-NOTES.txt | 762 +--------------------------------------------- 1 file changed, 1 insertion(+), 761 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 75cd176311..9ec672e561 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,5 +1,4 @@ -Apache Commons Pool 2.12.0 RELEASE NOTES ----------------------------------------- + Apache Commons Pool 2.12.0 RELEASE NOTES The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.12.0. @@ -13,312 +12,6 @@ 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. -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a feature and maintenance release (Java 8 or above). - -Changes in version 2.12.0 include: - -New features: -o Add PooledObject.getFullDuration(). Thanks to Gary Gregory. -o Add GenericKeyedObjectPool.getKeys(). Thanks to Vamsi Pavan Kumar Sanka, Phil Steitz, Gary Gregory. -o Add KeyedObjectPool.getKeys(). Thanks to Gary Gregory. -o Add github/codeql-action. -o Add BaseGenericObjectPool.Evictor.toString(). -o BaseGenericObjectPool now implements AutoCloseable. - -Fixed Bugs: -o POOL-401: Ensure that capacity freed by invalidateObject is available to all keyed pools. -o POOL-391: Ensure capacity freed by clear is made available to GKOP borrowers. Thanks to Codievilky August. -o POOL-402: Check blockWhenExhausted in hasBorrowWaiters #116. Thanks to Cp-John, Phil Steitz, Bruno P. Kinoshita, Gary Gregory. -o Simplify test assertion with similar call but simpler. #131. Thanks to Arturo Bernal. -o POOL-269: Use generic exceptions instead of java.lang.Exception. Thanks to Gary Gregory. -o POOL-405: NullPointerException GenericKeyedObjectPool.invalidateObject(GenericKeyedObjectPool.java:1343). Thanks to Gary Gregory. -o POOL-408: A typo of KeyedPooledObjectFactory on the site and Javadoc. Thanks to Zhenyu Luo, Gary Gregory. -o Fail-fast on null input for DefaultPooledObjectInfo.DefaultPooledObjectInfo(PooledObject) with a NullPointerException. Thanks to Gary Gregory. -o POOL-393: Improve BaseGenericObjectPool's JMX Register performance when creating many pools. Thanks to Shichao Yuan, Phil Steitz, Niall Pemberton. -o Null-guard in GenericObjectPool.use(T) like other call sites of GenericObjectPool.getPooledObject(T). Thanks to Réda Housni Alaoui, Gary Gregory. -o POOL-411: NPE when deregistering key at end of borrow. Thanks to Richard Eckart de Castilho, Gary Gregory. -o Make private class GenericKeyedObjectPool.ObjectDeque class static. Thanks to Gary Gregory. -o Make private class BaseGenericObjectPool.StatsStore class static. Thanks to Gary Gregory. -o [StepSecurity] ci: Harden GitHub Actions #225. Thanks to step-security-bot, Gary Gregory. - -Changes: -o Bump actions/cache from 2.1.6 to 3.0.10 #117, #138, #158, #174, #178. Thanks to Dependabot, Gary Gregory. -o Bump actions/checkout from 2.3.4 to 3.0.2 #109, #112, #134. Thanks to Dependabot, Gary Gregory. -o Bump actions/setup-java from 2 to 3.5.1. Thanks to Gary Gregory. -o Bump spotbugs from 4.3.0 to 4.7.3 #94, #99, #106, #114, #122, #129, #137, #155, #168, #187. Thanks to Dependabot. -o Bump spotbugs-maven-plugin from 4.3.0 to 4.7.3.0 #102, #110, #119, #125, #128, #139, #149, #157, #161, #169, #180, #190. Thanks to Dependabot. -o Bump junit-bom from 5.8.0-M1 to 5.9.1 #96, #100, #103, #120, #160, #172. Thanks to Dependabot. -o Bump checkstyle from 8.45.1 to 9.3 #97, #104, #111, #121, #126, #132. Thanks to Dependabot. -o Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #166. Thanks to Dependabot. -o Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #101, #153, #170. Thanks to Dependabot, Gary Gregory. -o Bump pmd from 6.44.0 to 6.52.0. Thanks to Gary Gregory. -o Bump biz.aQute.bndlib from 5.3.0 to 6.4.1 #105, #118, #135, #151, #154, #191, #223. Thanks to Dependabot. -o Bump maven-bundle-plugin from 5.1.3 to 5.1.8 #127, #146, #148, #159, #164. Thanks to Dependabot. -o Bump maven-surefire-plugin from 3.0.0-M7 to 3.0.0-M6 #142, #152. Thanks to Dependabot. -o Bump asm-util from 9.2 to 9.5 #141, #179, #220. Thanks to Dependabot. -o Bump commons-parent from 52 to 58 #173, #195, #204, #222. Thanks to Gary Gregory, Dependabot. -o Bump japicmp-maven-plugin from 0.15.3 to 0.16.0. Thanks to Gary Gregory. -o Bump animal-sniffer-maven-plugin 1.20 to 1.21. Thanks to Gary Gregory. -o Bump Apache Commons BCEL 6.5.0 to 6.7.0 #194. Thanks to Gary Gregory, Dependabot. - - -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.11.1 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.11.1. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a maintenance release (Java 8 or above). - -Changes in version 2.11.1 include: - - -Fixed Bugs: -o Getting a PooledObject's active duration returns a negative duration when the object is borrowed but not returned. Affects: - - PooledObject.getActiveDuration() - - PooledObject.getActiveTime() - - PooledObject.getActiveTimeMillis() Thanks to Gary Gregory. -o The default implementation of TrackedUse.getLastUsedInstant() uses seconds instead of milliseconds. - This interface is not implemented within Apache Commons Pool but affects Apache Commons DBCP. Thanks to Gary Gregory. -o DefaultPooledObject.getIdleTime() drops nanoseconds on Java 9 and greater. Thanks to Gary Gregory. -o Fix field label in BaseGenericObjectPool toString() builder: From timeBetweenEvictionRunsMillis to durationBetweenEvictionRuns. Thanks to Gary Gregory. -o Fix field label in BaseObjectPoolConfig toString() builder: From maxWaitMillis to maxWaitDuration. Thanks to Gary Gregory. -o Fix field label in NoSuchElementException message for GenericObjectPool.borrowObject(Duration): From borrowMaxWaitMillis to borrowMaxWaitDuration. Thanks to Gary Gregory. -o Reimplement DefaultPooledObject.getIdleDuration() using Duration computation. Thanks to Gary Gregory. -o Reimplement BaseGenericObjectPool.maxBorrowWait as a Duration instead of a long. Thanks to Gary Gregory. -o Minors Changes #89. Thanks to Arturo Bernal. - -Changes: -o Bump checkstyle from 8.45 to 8.45.1 #93. Thanks to Dependabot. -o Bump spotbugs from 4.2.3 to 4.3.0 and ignore new medium warnings EI_EXPOSE_REP and EI_EXPOSE_REP2. Thanks to Dependabot. - - -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.11.0 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.11.0. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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.10.x requires Java 8 or above. -Version 2.9.x requires Java 8 or above. -Version 2.8.x requires Java 8 or above. -Version 2.7.x 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. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a feature release (Java 8 or above). - -Changes in version 2.11.0 include: - -New features: -o Track timestamps with Instants instead of longs. - There is currently no increased precision on Java 8, but starting with Java 9, the JRE SystemClock precision is increased usually down to microseconds, or tenth of microseconds, depending on the OS, Hardware, and JVM implementation. - Add and use: - - DefaultPooledObject.getCreateInstant() - - DefaultPooledObject.getLastUsedInstant() - - PooledObject.getCreateInstant() - - PooledObject.getLastBorrowInstant() - - PooledObject.getLastReturnInstant() - - PooledObject.getLastUsedInstant() - - TrackedUse#getLastUsedInstant() Thanks to Gary Gregory. -o Add BaseObjectPoolConfig.setEvictorShutdownTimeoutDuration(Duration), deprecate setEvictorShutdownTimeoutMillis(Duration). Thanks to Gary Gregory. -o Add BaseGenericObjectPool.{get|set}MaxWaitDuration(Duration) and deprecate {get|set}MaxWaitMillis(long). Thanks to Gary Gregory. -o Add BaseObjectPoolConfig.{get|set}MaxWaitDuration(Duration) and deprecate {get|set}MaxWaitMillis(long). Thanks to Gary Gregory. -o Add and use Duration APIs instead of ints or longs. - - Add and use Duration APIs in BaseGenericObjectPool: getDurationBetweenEvictionRuns(), getEvictorShutdownTimeoutDuration(), getMinEvictableIdleDuration(), getSoftMinEvictableIdleDuration(), setMaxWait(Duration), setMinEvictableIdle(Duration), setSoftMinEvictableIdle(Duration). - - Add and use Duration APIs in BaseObjectPoolConfig: getDurationBetweenEvictionRuns(), getEvictorShutdownTimeoutDuration(),getMinEvictableIdleDuration(), getSoftMinEvictableIdleDuration(). - - Add and use Duration APIs in EvictionConfig: getIdleEvictDuration(), getIdleSoftEvictDuration(). - - Add and use Duration APIs in PooledObject: getIdleDuration(), getActiveDuration(). - - No need to initialize instance variables to their default values. - - Update Javadocs. - - Update toString() implementations with duration labels. Thanks to Gary Gregory. -o POOL-396: Handle validation exceptions during eviction. #85. Thanks to Jeremy Kong, Phil Steitz. -o POOL-395: Improve exception thrown in GenericObjectPool.borrowObject when pool is exhausted. Added BaseGenericObjectPool.setMessagesStatistics(boolean). Thanks to Gary Gregory, Arash Nikoo. -o Add and use AbandonedConfig.copy(AbandonedConfig) to fix CPD code duplication issues in GenericKeyedObjectPool and GenericObjectPool. Thanks to Gary Gregory. -o Pull up AbandonedConfig and related methods from GenericKeyedObjectPool and GenericObjectPool to BaseGenericObjectPool (fix for CPD issues). - - BaseGenericObjectPool.getLogAbandoned() - - BaseGenericObjectPool.getRemoveAbandonedOnBorrow() - - BaseGenericObjectPool.getRemoveAbandonedOnMaintenance() - - BaseGenericObjectPool.getRemoveAbandonedTimeout() - - BaseGenericObjectPool.getRemoveAbandonedTimeoutDuration() - - BaseGenericObjectPool.isAbandonedConfig() - - BaseGenericObjectPool.setAbandonedConfig(AbandonedConfig) Thanks to Gary Gregory. - -Fixed Bugs: -o Fix "[WARNING] Old version of checkstyle detected. Consider updating to >= v8.30." Update Checktyle to 8.44. Thanks to Gary Gregory. -o Make Duration setters use their respective default values when null. Thanks to Gary Gregory. -o Call swallowException(Exception) instead of printing exceptions to the console in GenericKeyedObjectPool.removeAbandoned(AbandonedConfig) and GenericObjectPool.removeAbandoned(AbandonedConfig). Thanks to Gary Gregory. -o Fix Javadoc link reference #91. Thanks to Arturo Bernal. -o No need to initialize to default values. #90. Thanks to Arturo Bernal. -o Bump org.ow2.asm:asm-util from 9.1 to 9.2. Thanks to Gary Gregory. -o Bump com.github.spotbugs:spotbugs from 4.2.3 to 4.3.0. Thanks to Gary Gregory. -o Bump checkstyle from 8.44 to 8.45 #92. Thanks to Dependabot. - - - -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.10.0 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.10.0. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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.10.x requires Java 8 or above. -Version 2.9.x requires Java 8 or above. -Version 2.8.x requires Java 8 or above. -Version 2.7.x 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. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a MMMM release (Java 8 or above). - -Changes in version 2.10.0 include: - -New features: -o Add and use java.time.Duration APIs timeouts instead of using ints for seconds. - See the site and its API comparison report for a list of the new Duration-based APIs. Thanks to Gary Gregory. -o Implement AbandonedConfig for GenericKeyedObjectPool #67. Thanks to JSurf, Gary Gregory, Phil Steitz. - -Fixed Bugs: -o Simplify Assertions in tests #77. Thanks to Arturo Bernal. -o Replace C-style array declaration with Java style #80. Thanks to Arturo Bernal. -o Use Objects.equals(); Use Anonymous type; Use method reference instead Lambda; Replace Loop with Collection.removeIf(). #81. Thanks to Arturo Bernal. -o Use diamond operator. #82. Thanks to Arturo Bernal. -o Code clean ups. #83. Thanks to Arturo Bernal. - -Changes: -o Bump spotbugs-maven-plugin from 4.0.4 to 4.2.1 #48, #53, #59, #62. Thanks to Dependabot. -o Bump actions/setup-java from v1.4.2 to v2, #47. Thanks to Dependabot, Gary Gregory. -o Bump junit from 4.13 to 4.13.1 #50. Thanks to Dependabot. -o Bump biz.aQute.bndlib from 5.1.2 to 5.3.0, #51, #66. Thanks to Dependabot. -o POOL-389: Migrate to JUnit 5 #57. Thanks to Arturo Bernal. -o POOL-389: Minor Improvements #58, #60. Thanks to Arturo Bernal. -o Bump actions/checkout from v2.3.3 to v2.3.4 #54. Thanks to Dependabot. -o Bump maven-pmd-plugin from 3.13.0 to 3.14.0 #55. Thanks to Dependabot. -o Update commons.japicmp.version 0.14.3 -> 0.15.3. Thanks to Gary Gregory. -o Bump actions/cache from v2 to v2.1.6 #65, #75, #84. Thanks to Dependabot, Gary Gregory. -o Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #61. Thanks to Dependabot. -o Bump asm-util from 9.0 to 9.1 #64. Thanks to Dependabot. -o Bump spotbugs from 4.2.1 to 4.2.3 #68, #73, #74. Thanks to Dependabot. -o Bump junit-bom from 5.7.1 to 5.8.0-M1 #76. Thanks to Dependabot, Gary Gregory. -o Bump maven-bundle-plugin from 5.1.1 to 5.1.2 #70. Thanks to Dependabot. -o Bump animal-sniffer-maven-plugin from 1.19 to 1.20. Thanks to Dependabot. - - -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.9.0 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.9.0. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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.9.x requires Java 8 or above. -Version 2.8.x requires Java 8 or above. -Version 2.7.x 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. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods that will be made available via JMX. They must not be implemented by clients as @@ -327,456 +20,3 @@ NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPool be able to upgrade to a new minor or patch release without requiring code changes. -This is a minor release (Java 8 or above). - -Changes in version 2.9.0 include: - -Changes: -o POOL-387: Object factory destroy method should carry information on activation context. Thanks to Phil Steitz. -o Update spotbugs from 4.0.6 to 4.1.3, #37, #41, #46. Thanks to Dependabot. -o Update actions/checkout from v2.3.1 to v2.3.3 #56, #45. Thanks to Dependabot. -o Update actions/setup-java from v1.4.0 to v1.4.2 #42. Thanks to Dependabot. -o Update optional asm-util from 8.0.1 to 9.0 #44. Thanks to Dependabot. - -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.8.1 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.8.1. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a maintenance release (Java 8 or above). - -Changes in version 2.8.1 include: - -New features: -o POOL-385: Added Automatic-Module-Name to support JPMS #31. Thanks to scholzi100. - -Fixed Bugs: -o POOL-386: Refactored EvictionTimer usage tracking to fix POOL-386 and handle abandoned pools. #32. Thanks to Phil Steitz, Mark Thomas. -o [Javadoc] Add missing @throws comment in PoolUtils. #27. Thanks to Prodigysov, Gary Gregory. - -Changes: -o POOL-384: Update optional library org.ow2.asm:asm-util from 7.2 to 8.0.1. Thanks to Gary Gregory. -o Update site reports from org.apache.bcel:bcel 6.4.1 to 6.5.0. Thanks to Gary Gregory. -o Update site reports from maven-pmd-plugin 3.12.0 to 3.13.0. Thanks to Gary Gregory. -o Update build from biz.aQute.bnd:biz.aQute.bndlib 5.1.0 -> 5.1.2. Thanks to Gary Gregory. -o Update actions/checkout from v1 to v2.3.1 #33. Thanks to Dependabot. -o Update commons-parent from 50 to 51 #36. Thanks to Dependabot. -o Update Checkstyle plugin from 3.0.0 to 3.1.1. Thanks to Gary Gregory. -o Update JApiCmp from 0.14.1 to 0.14.3. Thanks to Gary Gregory. -o Update animal-sniffer-maven-plugin from 1.16 to 1.19. 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.8.0 RELEASE NOTES - 05 December 2019 - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.8.0. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a maintenance release (Java 8 or above). - -Changes in version 2.8.0 include: - -New features: -o POOL-378: Deprecate PoolUtils.prefill(ObjectPool, int) in favor of ObjectPool.addObjects(int). Thanks to Gary Gregory. -o POOL-379: Deprecate PoolUtils.prefill(KeyedObjectPool, K, int) in favor of KeyedObjectPool.addObjects(K, int). Thanks to Gary Gregory. -o POOL-380: Deprecate PoolUtils.prefill(KeyedObjectPool, Collection, int) in favor of KeyedObjectPool.addObjects(Collection, int). Thanks to Gary Gregory. - -Fixed Bugs: -o POOL-374: org.apache.commons.pool3.impl.GenericKeyedObjectPool.returnObject(K, T) should throw IllegalStateException instead of NullPointerException when a key is not found in the pool map. Thanks to Gary Gregory, Phil Steitz. -o POOL-376: Fixed regression from original fix for POOL-356 which could result in NPE when destroying objects. Thanks to Sazzadul Hoque, Phil Steitz. -o POOL-326: Eliminated NPE / ISE exceptions due to keyed pools being prematurely removed. Thanks to Phil Steitz. -o Close BufferedOutputStream in test before calling toString on underlying BufferedOutputStream #26. Thanks to emopers. -o [Javadoc] Add missing @throws comment in SoftReferenceObjectPool. #28. Thanks to Prodigysov. - -Changes: -o POOL-375: Update optional library cglib from 3.2.12 to 3.3.0. Thanks to Gary Gregory. -o Update site build from Apache Commons BCEL 6.3.1 to 6.4.1. Thanks to Gary Gregory. -o POOL-377: Update optional library org.ow2.asm:asm-util from 7.1 to 7.2. 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.7.0 RELEASE NOTES - 23 July 2019 - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.7.0. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a feature release (Java 8 or above). - -Changes in version 2.7.0 include: - -New features: -o POOL-370: Add org.apache.commons.pool3.PooledObject#getBorrowedCount(). Thanks to Mark Thomas, Gary Gregory. -o POOL-371: Add org.apache.commons.pool3.PooledObject#setRequireFullStackTrace(boolean). Thanks to Matt Sicker, Gary Gregory. - -Fixed Bugs: -o POOL-361: Move validation for newly created objects into create(). Fixes #23. Thanks to Pablo, Phil Steitz, Bruno P. Kinoshita. - -Changes: -o POOL-364: Update from Java 7 to Java 8. Thanks to Gary Gregory. -o POOL-365: Update ASM from 7.0 to 7.1 Thanks to Gary Gregory. -o POOL-366: Update optional library cglib from 3.2.10 to 3.2.12. Thanks to Gary Gregory. -o POOL-367: Fix typo in package private method name stopEvitor() -> stopEvictor() #22. Thanks to Per Lundberg. - - -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.6.2 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.6.2. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a maintenance release. - -Changes in version 2.6.2 include: - -Fixed Bugs: -o POOL-362: Always null out org.apache.commons.pool3.impl.BaseGenericObjectPool.evictionIterator to match org.apache.commons.pool3.impl.BaseGenericObjectPool.evictor. -o POOL-363: Evictor Thread prevents Spring Context shutdown in standalone app. Thanks to Josh Landin. -o POOL-348: The commons-pool-evictor-thread should run as a Deamon. Thanks to Josh Landin. - -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.6.1 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.6.1. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a maintenance release. - -Changes in version 2.6.1 include: - - -Fixed Bugs: -o POOL-340: Correct validateObject with concurrent borrowObject Thanks to Pavel Kolesov. -o POOL-356: Fix deadlock on massive concurrent requests -o POOL-347: Method borrowObject waits for maxWaitMillis over in pool full. Thanks to Shunsuke Nakamura. -o POOL-359: NullPointerException closing multiple GenericObjectPools. Thanks to Michael Wintermeyer, Gary Gregory. -o POOL-326: Threading issue, NullPointerException and IllegalStateException in GenericKeyedObjectPool. Thanks to Chris Allison, Phil Steitz. -o POOL-352: CallStackUtils mishandles security manager check (partial fix.) Thanks to Volker Kleinschmidt, Gary Gregory. - -Changes: -o POOL-345: Update optional library cglib from 3.2.6 to 3.2.9. -o POOL-346: Move common configuration setter to BaseGenericObjectPool #9. Thanks to Michael Chen. -o POOL-349: Update optional library asm-util from 6.2 to 7.0. -o POOL-360: Update optional library cglib from 3.2.9 to 3.2.10. - - -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.6.0 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.6.0. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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.6.0 requires Java 7 or above. -- Version 2.5.0 requires Java 7 or above. -- Version 2.0 requires 6 or above. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a maintenance release. - -Changes in version 2.6.0 include: - -Fixed Bugs: -o POOL-337: Ensure cancelled eviction tasks are removed from scheduler. Thanks to Reinald Verheij. -o POOL-338: GenericObjectPool constructor may throw an exception under OSGi. Thanks to Michael C, Gary Gregory. -o POOL-324: org.apache.commons.pool3.impl.GenericObjectPool.getFactoryType() throws java.lang.ClassCastException. Thanks to Jay Xu, Gary Gregory. -o POOL-344: Delete repeated call startEvictor. Thanks to Yulin Wang. - -Changes: -o POOL-336: GenericObjectPool's borrowObject lock if create() fails with Error. Thanks to Wolfgang Glas. -o POOL-339: Update optional library cglib from 3.2.5 to 3.2.6. -o POOL-341: Update optional library asm-util from 6.0 to 6.1.1. -o POOL-342: Update optional library asm-util from 6.1.1 to 6.2. - -Note that Clirr reports one warning: -"Value of field DEFAULT_EVICTION_POLICY_CLASS_NAME is no longer a compile-time constant." -The value is initialized as "public static final String DEFAULT_EVICTION_POLICY_CLASS_NAME = DefaultEvictionPolicy.class.getName();" -The value should not change from one run to the next. - -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.5.0 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.5.0. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a patch release, including bug fixes only. - -Changes in version 2.5.0 include: - -New features: -o POOL-332: ObjectPool and KeyedObject pool should extend Closeable. -o POOL-335: Make abandoned logging stack trace requirements configurable. This also reverts - the default behavior introduced by POOL-320. - - -Changes: -o POOL-331: Update from Java 6 to 7. -o POOL-333: Update optional dependency asm-util from 5.2 to 6.0. -o POOL-334: org.apache.commons.pool3.impl.ThrowableCallStack.Snapshot is missing serialVersionUID. - - -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/ - ------------------------------------------------------------------------------------------------ - - Apache Commons Pool 2.4.3 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.4.3. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -Changes in version 2.4.3 include: - -New features: -o POOL-320: Use more efficient stack walking mechanisms for usage tracking when possible. - -Fixed Bugs: -o POOL-328: Documentation with repeated words (sources, tests, and examples). Thanks to Lorenzo Solano Martinez. -o POOL-317: Correction of default value of softMinEvictableIdleTimeMillis in BaseObjectPoolConfig. Thanks to KeiichiFujino. -o POOL-309: Fix misspellings from "destory" to "destroy". Thanks to jolestar, Roopam Patekar. -o POOL-306: Ensure BaseGenericObjectPool.IdentityWrapper#equals() follows the expected - contract for equals(). Thanks to Adrian Crum. -o POOL-303: Ensure that threads do not block indefinitely if more than maxTotal - threads try to borrow an object at the same time and the factory fails to - create any objects. -o POOL-310: Ensure that threads using GKOP do not block indefinitely if more than - maxTotal threads try to borrow objects with different keys at the same - time and the factory destroys objects on return. Thanks to Ivan Iliev. -o Ensure that any class name used for evictionPolicyClassName represents a - class that implements EvictionPolicy. -o POOL-315: Add a configurable delay (default 10 seconds) to wait when shutting down - an Evictor to allow the associated thread time to complete and current - evictions and to terminate. Thanks to KeiichiFujino. -o Ensure that a call to GKOP preparePool() takes account of other threads - that might create objects concurrently, particularly the Evictor. - -Changes: -o POOL-280: Small refactoring of borrowObject() to reduce code duplication. Thanks to Jacopo Cappellato. -o POOL-307: Replace inefficient use of keySet with entrySet in GKOP. Thanks to Anthony Whitford. -o POOL-322: Update optional cglib library from 3.1 to 3.2.5. -o POOL-323: Update optional OW2 ASM from 5.0.4 to 5.2. - - -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/ - ------------------------------------------------------------------------------------------------ - - Apache Commons Pool 2.4.2 RELEASE NOTES - -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.4.2. - -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. - -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.2. -Users of version 1.x should consult the migration guide on the Commons Pool web site. - -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean - and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, - be able to upgrade to a new minor or patch release without requiring code - changes. - -This is a patch release, including bug fixes only. - -Changes in version 2.4.2 include: - - -Fixed Bugs: -o POOL-298: Changed default jmxNameBase in BaseObjectPoolConfig to the correct (null) - default. -o POOL-300: Added PrintWriter flush to DefaultPooledObject's printStackTrace method. - - - -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/ - - From 86f8c8d82d2e79f1d5b088c0559440f4c679df8d Mon Sep 17 00:00:00 2001 From: Sebb Date: Sat, 18 Jan 2025 23:32:19 +0000 Subject: [PATCH 22/44] Revert "chmod -x" This reverts commit a661f58a9dc399ffcb75ab119dde356bbb6756f0. --- RELEASE-NOTES.txt | 762 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 761 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 9ec672e561..75cd176311 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,4 +1,5 @@ - Apache Commons Pool 2.12.0 RELEASE NOTES +Apache Commons Pool 2.12.0 RELEASE NOTES +---------------------------------------- The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.12.0. @@ -12,6 +13,312 @@ 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. +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a feature and maintenance release (Java 8 or above). + +Changes in version 2.12.0 include: + +New features: +o Add PooledObject.getFullDuration(). Thanks to Gary Gregory. +o Add GenericKeyedObjectPool.getKeys(). Thanks to Vamsi Pavan Kumar Sanka, Phil Steitz, Gary Gregory. +o Add KeyedObjectPool.getKeys(). Thanks to Gary Gregory. +o Add github/codeql-action. +o Add BaseGenericObjectPool.Evictor.toString(). +o BaseGenericObjectPool now implements AutoCloseable. + +Fixed Bugs: +o POOL-401: Ensure that capacity freed by invalidateObject is available to all keyed pools. +o POOL-391: Ensure capacity freed by clear is made available to GKOP borrowers. Thanks to Codievilky August. +o POOL-402: Check blockWhenExhausted in hasBorrowWaiters #116. Thanks to Cp-John, Phil Steitz, Bruno P. Kinoshita, Gary Gregory. +o Simplify test assertion with similar call but simpler. #131. Thanks to Arturo Bernal. +o POOL-269: Use generic exceptions instead of java.lang.Exception. Thanks to Gary Gregory. +o POOL-405: NullPointerException GenericKeyedObjectPool.invalidateObject(GenericKeyedObjectPool.java:1343). Thanks to Gary Gregory. +o POOL-408: A typo of KeyedPooledObjectFactory on the site and Javadoc. Thanks to Zhenyu Luo, Gary Gregory. +o Fail-fast on null input for DefaultPooledObjectInfo.DefaultPooledObjectInfo(PooledObject) with a NullPointerException. Thanks to Gary Gregory. +o POOL-393: Improve BaseGenericObjectPool's JMX Register performance when creating many pools. Thanks to Shichao Yuan, Phil Steitz, Niall Pemberton. +o Null-guard in GenericObjectPool.use(T) like other call sites of GenericObjectPool.getPooledObject(T). Thanks to Réda Housni Alaoui, Gary Gregory. +o POOL-411: NPE when deregistering key at end of borrow. Thanks to Richard Eckart de Castilho, Gary Gregory. +o Make private class GenericKeyedObjectPool.ObjectDeque class static. Thanks to Gary Gregory. +o Make private class BaseGenericObjectPool.StatsStore class static. Thanks to Gary Gregory. +o [StepSecurity] ci: Harden GitHub Actions #225. Thanks to step-security-bot, Gary Gregory. + +Changes: +o Bump actions/cache from 2.1.6 to 3.0.10 #117, #138, #158, #174, #178. Thanks to Dependabot, Gary Gregory. +o Bump actions/checkout from 2.3.4 to 3.0.2 #109, #112, #134. Thanks to Dependabot, Gary Gregory. +o Bump actions/setup-java from 2 to 3.5.1. Thanks to Gary Gregory. +o Bump spotbugs from 4.3.0 to 4.7.3 #94, #99, #106, #114, #122, #129, #137, #155, #168, #187. Thanks to Dependabot. +o Bump spotbugs-maven-plugin from 4.3.0 to 4.7.3.0 #102, #110, #119, #125, #128, #139, #149, #157, #161, #169, #180, #190. Thanks to Dependabot. +o Bump junit-bom from 5.8.0-M1 to 5.9.1 #96, #100, #103, #120, #160, #172. Thanks to Dependabot. +o Bump checkstyle from 8.45.1 to 9.3 #97, #104, #111, #121, #126, #132. Thanks to Dependabot. +o Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #166. Thanks to Dependabot. +o Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #101, #153, #170. Thanks to Dependabot, Gary Gregory. +o Bump pmd from 6.44.0 to 6.52.0. Thanks to Gary Gregory. +o Bump biz.aQute.bndlib from 5.3.0 to 6.4.1 #105, #118, #135, #151, #154, #191, #223. Thanks to Dependabot. +o Bump maven-bundle-plugin from 5.1.3 to 5.1.8 #127, #146, #148, #159, #164. Thanks to Dependabot. +o Bump maven-surefire-plugin from 3.0.0-M7 to 3.0.0-M6 #142, #152. Thanks to Dependabot. +o Bump asm-util from 9.2 to 9.5 #141, #179, #220. Thanks to Dependabot. +o Bump commons-parent from 52 to 58 #173, #195, #204, #222. Thanks to Gary Gregory, Dependabot. +o Bump japicmp-maven-plugin from 0.15.3 to 0.16.0. Thanks to Gary Gregory. +o Bump animal-sniffer-maven-plugin 1.20 to 1.21. Thanks to Gary Gregory. +o Bump Apache Commons BCEL 6.5.0 to 6.7.0 #194. Thanks to Gary Gregory, Dependabot. + + +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.11.1 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.11.1. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a maintenance release (Java 8 or above). + +Changes in version 2.11.1 include: + + +Fixed Bugs: +o Getting a PooledObject's active duration returns a negative duration when the object is borrowed but not returned. Affects: + - PooledObject.getActiveDuration() + - PooledObject.getActiveTime() + - PooledObject.getActiveTimeMillis() Thanks to Gary Gregory. +o The default implementation of TrackedUse.getLastUsedInstant() uses seconds instead of milliseconds. + This interface is not implemented within Apache Commons Pool but affects Apache Commons DBCP. Thanks to Gary Gregory. +o DefaultPooledObject.getIdleTime() drops nanoseconds on Java 9 and greater. Thanks to Gary Gregory. +o Fix field label in BaseGenericObjectPool toString() builder: From timeBetweenEvictionRunsMillis to durationBetweenEvictionRuns. Thanks to Gary Gregory. +o Fix field label in BaseObjectPoolConfig toString() builder: From maxWaitMillis to maxWaitDuration. Thanks to Gary Gregory. +o Fix field label in NoSuchElementException message for GenericObjectPool.borrowObject(Duration): From borrowMaxWaitMillis to borrowMaxWaitDuration. Thanks to Gary Gregory. +o Reimplement DefaultPooledObject.getIdleDuration() using Duration computation. Thanks to Gary Gregory. +o Reimplement BaseGenericObjectPool.maxBorrowWait as a Duration instead of a long. Thanks to Gary Gregory. +o Minors Changes #89. Thanks to Arturo Bernal. + +Changes: +o Bump checkstyle from 8.45 to 8.45.1 #93. Thanks to Dependabot. +o Bump spotbugs from 4.2.3 to 4.3.0 and ignore new medium warnings EI_EXPOSE_REP and EI_EXPOSE_REP2. Thanks to Dependabot. + + +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.11.0 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.11.0. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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.10.x requires Java 8 or above. +Version 2.9.x requires Java 8 or above. +Version 2.8.x requires Java 8 or above. +Version 2.7.x 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. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a feature release (Java 8 or above). + +Changes in version 2.11.0 include: + +New features: +o Track timestamps with Instants instead of longs. + There is currently no increased precision on Java 8, but starting with Java 9, the JRE SystemClock precision is increased usually down to microseconds, or tenth of microseconds, depending on the OS, Hardware, and JVM implementation. + Add and use: + - DefaultPooledObject.getCreateInstant() + - DefaultPooledObject.getLastUsedInstant() + - PooledObject.getCreateInstant() + - PooledObject.getLastBorrowInstant() + - PooledObject.getLastReturnInstant() + - PooledObject.getLastUsedInstant() + - TrackedUse#getLastUsedInstant() Thanks to Gary Gregory. +o Add BaseObjectPoolConfig.setEvictorShutdownTimeoutDuration(Duration), deprecate setEvictorShutdownTimeoutMillis(Duration). Thanks to Gary Gregory. +o Add BaseGenericObjectPool.{get|set}MaxWaitDuration(Duration) and deprecate {get|set}MaxWaitMillis(long). Thanks to Gary Gregory. +o Add BaseObjectPoolConfig.{get|set}MaxWaitDuration(Duration) and deprecate {get|set}MaxWaitMillis(long). Thanks to Gary Gregory. +o Add and use Duration APIs instead of ints or longs. + - Add and use Duration APIs in BaseGenericObjectPool: getDurationBetweenEvictionRuns(), getEvictorShutdownTimeoutDuration(), getMinEvictableIdleDuration(), getSoftMinEvictableIdleDuration(), setMaxWait(Duration), setMinEvictableIdle(Duration), setSoftMinEvictableIdle(Duration). + - Add and use Duration APIs in BaseObjectPoolConfig: getDurationBetweenEvictionRuns(), getEvictorShutdownTimeoutDuration(),getMinEvictableIdleDuration(), getSoftMinEvictableIdleDuration(). + - Add and use Duration APIs in EvictionConfig: getIdleEvictDuration(), getIdleSoftEvictDuration(). + - Add and use Duration APIs in PooledObject: getIdleDuration(), getActiveDuration(). + - No need to initialize instance variables to their default values. + - Update Javadocs. + - Update toString() implementations with duration labels. Thanks to Gary Gregory. +o POOL-396: Handle validation exceptions during eviction. #85. Thanks to Jeremy Kong, Phil Steitz. +o POOL-395: Improve exception thrown in GenericObjectPool.borrowObject when pool is exhausted. Added BaseGenericObjectPool.setMessagesStatistics(boolean). Thanks to Gary Gregory, Arash Nikoo. +o Add and use AbandonedConfig.copy(AbandonedConfig) to fix CPD code duplication issues in GenericKeyedObjectPool and GenericObjectPool. Thanks to Gary Gregory. +o Pull up AbandonedConfig and related methods from GenericKeyedObjectPool and GenericObjectPool to BaseGenericObjectPool (fix for CPD issues). + - BaseGenericObjectPool.getLogAbandoned() + - BaseGenericObjectPool.getRemoveAbandonedOnBorrow() + - BaseGenericObjectPool.getRemoveAbandonedOnMaintenance() + - BaseGenericObjectPool.getRemoveAbandonedTimeout() + - BaseGenericObjectPool.getRemoveAbandonedTimeoutDuration() + - BaseGenericObjectPool.isAbandonedConfig() + - BaseGenericObjectPool.setAbandonedConfig(AbandonedConfig) Thanks to Gary Gregory. + +Fixed Bugs: +o Fix "[WARNING] Old version of checkstyle detected. Consider updating to >= v8.30." Update Checktyle to 8.44. Thanks to Gary Gregory. +o Make Duration setters use their respective default values when null. Thanks to Gary Gregory. +o Call swallowException(Exception) instead of printing exceptions to the console in GenericKeyedObjectPool.removeAbandoned(AbandonedConfig) and GenericObjectPool.removeAbandoned(AbandonedConfig). Thanks to Gary Gregory. +o Fix Javadoc link reference #91. Thanks to Arturo Bernal. +o No need to initialize to default values. #90. Thanks to Arturo Bernal. +o Bump org.ow2.asm:asm-util from 9.1 to 9.2. Thanks to Gary Gregory. +o Bump com.github.spotbugs:spotbugs from 4.2.3 to 4.3.0. Thanks to Gary Gregory. +o Bump checkstyle from 8.44 to 8.45 #92. Thanks to Dependabot. + + + +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.10.0 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.10.0. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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.10.x requires Java 8 or above. +Version 2.9.x requires Java 8 or above. +Version 2.8.x requires Java 8 or above. +Version 2.7.x 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. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a MMMM release (Java 8 or above). + +Changes in version 2.10.0 include: + +New features: +o Add and use java.time.Duration APIs timeouts instead of using ints for seconds. + See the site and its API comparison report for a list of the new Duration-based APIs. Thanks to Gary Gregory. +o Implement AbandonedConfig for GenericKeyedObjectPool #67. Thanks to JSurf, Gary Gregory, Phil Steitz. + +Fixed Bugs: +o Simplify Assertions in tests #77. Thanks to Arturo Bernal. +o Replace C-style array declaration with Java style #80. Thanks to Arturo Bernal. +o Use Objects.equals(); Use Anonymous type; Use method reference instead Lambda; Replace Loop with Collection.removeIf(). #81. Thanks to Arturo Bernal. +o Use diamond operator. #82. Thanks to Arturo Bernal. +o Code clean ups. #83. Thanks to Arturo Bernal. + +Changes: +o Bump spotbugs-maven-plugin from 4.0.4 to 4.2.1 #48, #53, #59, #62. Thanks to Dependabot. +o Bump actions/setup-java from v1.4.2 to v2, #47. Thanks to Dependabot, Gary Gregory. +o Bump junit from 4.13 to 4.13.1 #50. Thanks to Dependabot. +o Bump biz.aQute.bndlib from 5.1.2 to 5.3.0, #51, #66. Thanks to Dependabot. +o POOL-389: Migrate to JUnit 5 #57. Thanks to Arturo Bernal. +o POOL-389: Minor Improvements #58, #60. Thanks to Arturo Bernal. +o Bump actions/checkout from v2.3.3 to v2.3.4 #54. Thanks to Dependabot. +o Bump maven-pmd-plugin from 3.13.0 to 3.14.0 #55. Thanks to Dependabot. +o Update commons.japicmp.version 0.14.3 -> 0.15.3. Thanks to Gary Gregory. +o Bump actions/cache from v2 to v2.1.6 #65, #75, #84. Thanks to Dependabot, Gary Gregory. +o Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #61. Thanks to Dependabot. +o Bump asm-util from 9.0 to 9.1 #64. Thanks to Dependabot. +o Bump spotbugs from 4.2.1 to 4.2.3 #68, #73, #74. Thanks to Dependabot. +o Bump junit-bom from 5.7.1 to 5.8.0-M1 #76. Thanks to Dependabot, Gary Gregory. +o Bump maven-bundle-plugin from 5.1.1 to 5.1.2 #70. Thanks to Dependabot. +o Bump animal-sniffer-maven-plugin from 1.19 to 1.20. Thanks to Dependabot. + + +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.9.0 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.9.0. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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.9.x requires Java 8 or above. +Version 2.8.x requires Java 8 or above. +Version 2.7.x 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. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods that will be made available via JMX. They must not be implemented by clients as @@ -20,3 +327,456 @@ NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPool be able to upgrade to a new minor or patch release without requiring code changes. +This is a minor release (Java 8 or above). + +Changes in version 2.9.0 include: + +Changes: +o POOL-387: Object factory destroy method should carry information on activation context. Thanks to Phil Steitz. +o Update spotbugs from 4.0.6 to 4.1.3, #37, #41, #46. Thanks to Dependabot. +o Update actions/checkout from v2.3.1 to v2.3.3 #56, #45. Thanks to Dependabot. +o Update actions/setup-java from v1.4.0 to v1.4.2 #42. Thanks to Dependabot. +o Update optional asm-util from 8.0.1 to 9.0 #44. Thanks to Dependabot. + +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.8.1 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.8.1. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a maintenance release (Java 8 or above). + +Changes in version 2.8.1 include: + +New features: +o POOL-385: Added Automatic-Module-Name to support JPMS #31. Thanks to scholzi100. + +Fixed Bugs: +o POOL-386: Refactored EvictionTimer usage tracking to fix POOL-386 and handle abandoned pools. #32. Thanks to Phil Steitz, Mark Thomas. +o [Javadoc] Add missing @throws comment in PoolUtils. #27. Thanks to Prodigysov, Gary Gregory. + +Changes: +o POOL-384: Update optional library org.ow2.asm:asm-util from 7.2 to 8.0.1. Thanks to Gary Gregory. +o Update site reports from org.apache.bcel:bcel 6.4.1 to 6.5.0. Thanks to Gary Gregory. +o Update site reports from maven-pmd-plugin 3.12.0 to 3.13.0. Thanks to Gary Gregory. +o Update build from biz.aQute.bnd:biz.aQute.bndlib 5.1.0 -> 5.1.2. Thanks to Gary Gregory. +o Update actions/checkout from v1 to v2.3.1 #33. Thanks to Dependabot. +o Update commons-parent from 50 to 51 #36. Thanks to Dependabot. +o Update Checkstyle plugin from 3.0.0 to 3.1.1. Thanks to Gary Gregory. +o Update JApiCmp from 0.14.1 to 0.14.3. Thanks to Gary Gregory. +o Update animal-sniffer-maven-plugin from 1.16 to 1.19. 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.8.0 RELEASE NOTES + 05 December 2019 + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.8.0. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a maintenance release (Java 8 or above). + +Changes in version 2.8.0 include: + +New features: +o POOL-378: Deprecate PoolUtils.prefill(ObjectPool, int) in favor of ObjectPool.addObjects(int). Thanks to Gary Gregory. +o POOL-379: Deprecate PoolUtils.prefill(KeyedObjectPool, K, int) in favor of KeyedObjectPool.addObjects(K, int). Thanks to Gary Gregory. +o POOL-380: Deprecate PoolUtils.prefill(KeyedObjectPool, Collection, int) in favor of KeyedObjectPool.addObjects(Collection, int). Thanks to Gary Gregory. + +Fixed Bugs: +o POOL-374: org.apache.commons.pool3.impl.GenericKeyedObjectPool.returnObject(K, T) should throw IllegalStateException instead of NullPointerException when a key is not found in the pool map. Thanks to Gary Gregory, Phil Steitz. +o POOL-376: Fixed regression from original fix for POOL-356 which could result in NPE when destroying objects. Thanks to Sazzadul Hoque, Phil Steitz. +o POOL-326: Eliminated NPE / ISE exceptions due to keyed pools being prematurely removed. Thanks to Phil Steitz. +o Close BufferedOutputStream in test before calling toString on underlying BufferedOutputStream #26. Thanks to emopers. +o [Javadoc] Add missing @throws comment in SoftReferenceObjectPool. #28. Thanks to Prodigysov. + +Changes: +o POOL-375: Update optional library cglib from 3.2.12 to 3.3.0. Thanks to Gary Gregory. +o Update site build from Apache Commons BCEL 6.3.1 to 6.4.1. Thanks to Gary Gregory. +o POOL-377: Update optional library org.ow2.asm:asm-util from 7.1 to 7.2. 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.7.0 RELEASE NOTES + 23 July 2019 + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.7.0. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a feature release (Java 8 or above). + +Changes in version 2.7.0 include: + +New features: +o POOL-370: Add org.apache.commons.pool3.PooledObject#getBorrowedCount(). Thanks to Mark Thomas, Gary Gregory. +o POOL-371: Add org.apache.commons.pool3.PooledObject#setRequireFullStackTrace(boolean). Thanks to Matt Sicker, Gary Gregory. + +Fixed Bugs: +o POOL-361: Move validation for newly created objects into create(). Fixes #23. Thanks to Pablo, Phil Steitz, Bruno P. Kinoshita. + +Changes: +o POOL-364: Update from Java 7 to Java 8. Thanks to Gary Gregory. +o POOL-365: Update ASM from 7.0 to 7.1 Thanks to Gary Gregory. +o POOL-366: Update optional library cglib from 3.2.10 to 3.2.12. Thanks to Gary Gregory. +o POOL-367: Fix typo in package private method name stopEvitor() -> stopEvictor() #22. Thanks to Per Lundberg. + + +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.6.2 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.6.2. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a maintenance release. + +Changes in version 2.6.2 include: + +Fixed Bugs: +o POOL-362: Always null out org.apache.commons.pool3.impl.BaseGenericObjectPool.evictionIterator to match org.apache.commons.pool3.impl.BaseGenericObjectPool.evictor. +o POOL-363: Evictor Thread prevents Spring Context shutdown in standalone app. Thanks to Josh Landin. +o POOL-348: The commons-pool-evictor-thread should run as a Deamon. Thanks to Josh Landin. + +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.6.1 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.6.1. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a maintenance release. + +Changes in version 2.6.1 include: + + +Fixed Bugs: +o POOL-340: Correct validateObject with concurrent borrowObject Thanks to Pavel Kolesov. +o POOL-356: Fix deadlock on massive concurrent requests +o POOL-347: Method borrowObject waits for maxWaitMillis over in pool full. Thanks to Shunsuke Nakamura. +o POOL-359: NullPointerException closing multiple GenericObjectPools. Thanks to Michael Wintermeyer, Gary Gregory. +o POOL-326: Threading issue, NullPointerException and IllegalStateException in GenericKeyedObjectPool. Thanks to Chris Allison, Phil Steitz. +o POOL-352: CallStackUtils mishandles security manager check (partial fix.) Thanks to Volker Kleinschmidt, Gary Gregory. + +Changes: +o POOL-345: Update optional library cglib from 3.2.6 to 3.2.9. +o POOL-346: Move common configuration setter to BaseGenericObjectPool #9. Thanks to Michael Chen. +o POOL-349: Update optional library asm-util from 6.2 to 7.0. +o POOL-360: Update optional library cglib from 3.2.9 to 3.2.10. + + +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.6.0 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.6.0. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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.6.0 requires Java 7 or above. +- Version 2.5.0 requires Java 7 or above. +- Version 2.0 requires 6 or above. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a maintenance release. + +Changes in version 2.6.0 include: + +Fixed Bugs: +o POOL-337: Ensure cancelled eviction tasks are removed from scheduler. Thanks to Reinald Verheij. +o POOL-338: GenericObjectPool constructor may throw an exception under OSGi. Thanks to Michael C, Gary Gregory. +o POOL-324: org.apache.commons.pool3.impl.GenericObjectPool.getFactoryType() throws java.lang.ClassCastException. Thanks to Jay Xu, Gary Gregory. +o POOL-344: Delete repeated call startEvictor. Thanks to Yulin Wang. + +Changes: +o POOL-336: GenericObjectPool's borrowObject lock if create() fails with Error. Thanks to Wolfgang Glas. +o POOL-339: Update optional library cglib from 3.2.5 to 3.2.6. +o POOL-341: Update optional library asm-util from 6.0 to 6.1.1. +o POOL-342: Update optional library asm-util from 6.1.1 to 6.2. + +Note that Clirr reports one warning: +"Value of field DEFAULT_EVICTION_POLICY_CLASS_NAME is no longer a compile-time constant." +The value is initialized as "public static final String DEFAULT_EVICTION_POLICY_CLASS_NAME = DefaultEvictionPolicy.class.getName();" +The value should not change from one run to the next. + +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.5.0 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.5.0. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a patch release, including bug fixes only. + +Changes in version 2.5.0 include: + +New features: +o POOL-332: ObjectPool and KeyedObject pool should extend Closeable. +o POOL-335: Make abandoned logging stack trace requirements configurable. This also reverts + the default behavior introduced by POOL-320. + + +Changes: +o POOL-331: Update from Java 6 to 7. +o POOL-333: Update optional dependency asm-util from 5.2 to 6.0. +o POOL-334: org.apache.commons.pool3.impl.ThrowableCallStack.Snapshot is missing serialVersionUID. + + +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/ + +----------------------------------------------------------------------------------------------- + + Apache Commons Pool 2.4.3 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.4.3. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +Changes in version 2.4.3 include: + +New features: +o POOL-320: Use more efficient stack walking mechanisms for usage tracking when possible. + +Fixed Bugs: +o POOL-328: Documentation with repeated words (sources, tests, and examples). Thanks to Lorenzo Solano Martinez. +o POOL-317: Correction of default value of softMinEvictableIdleTimeMillis in BaseObjectPoolConfig. Thanks to KeiichiFujino. +o POOL-309: Fix misspellings from "destory" to "destroy". Thanks to jolestar, Roopam Patekar. +o POOL-306: Ensure BaseGenericObjectPool.IdentityWrapper#equals() follows the expected + contract for equals(). Thanks to Adrian Crum. +o POOL-303: Ensure that threads do not block indefinitely if more than maxTotal + threads try to borrow an object at the same time and the factory fails to + create any objects. +o POOL-310: Ensure that threads using GKOP do not block indefinitely if more than + maxTotal threads try to borrow objects with different keys at the same + time and the factory destroys objects on return. Thanks to Ivan Iliev. +o Ensure that any class name used for evictionPolicyClassName represents a + class that implements EvictionPolicy. +o POOL-315: Add a configurable delay (default 10 seconds) to wait when shutting down + an Evictor to allow the associated thread time to complete and current + evictions and to terminate. Thanks to KeiichiFujino. +o Ensure that a call to GKOP preparePool() takes account of other threads + that might create objects concurrently, particularly the Evictor. + +Changes: +o POOL-280: Small refactoring of borrowObject() to reduce code duplication. Thanks to Jacopo Cappellato. +o POOL-307: Replace inefficient use of keySet with entrySet in GKOP. Thanks to Anthony Whitford. +o POOL-322: Update optional cglib library from 3.1 to 3.2.5. +o POOL-323: Update optional OW2 ASM from 5.0.4 to 5.2. + + +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/ + +----------------------------------------------------------------------------------------------- + + Apache Commons Pool 2.4.2 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.4.2. + +Apache Commons Pool provides an object-pooling API and a number of object pool implementations. +Version 2 contains a completely re-written 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 requires JDK level 1.6 or above. + +No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.2. +Users of version 1.x should consult the migration guide on the Commons Pool web site. + +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods + that will be made available via JMX. They must not be implemented by clients 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, therefore, + be able to upgrade to a new minor or patch release without requiring code + changes. + +This is a patch release, including bug fixes only. + +Changes in version 2.4.2 include: + + +Fixed Bugs: +o POOL-298: Changed default jmxNameBase in BaseObjectPoolConfig to the correct (null) + default. +o POOL-300: Added PrintWriter flush to DefaultPooledObject's printStackTrace method. + + + +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/ + + From eb32816197cc485b8c7a8bc479c80ea6195ab309 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Mon, 20 Jan 2025 09:02:02 -0500 Subject: [PATCH 23/44] Remove trailing whitespace --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 70f17e2416..1b81821204 100644 --- a/pom.xml +++ b/pom.xml @@ -392,7 +392,7 @@ ggregory at apache.org https://www.garygregory.com The Apache Software Foundation - https://www.apache.org/ + https://www.apache.org/ PMC Member From 14054b7ce318cf66dfc55ad35d34ce7f92740161 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Mon, 20 Jan 2025 10:33:01 -0500 Subject: [PATCH 24/44] Validate site XML template files with XML Schema - Normalize logo graphic file name --- .../images/{pool-logo-white.png => logo.png} | Bin src/site/site.xml | 56 +++++++++--------- src/site/xdoc/examples.xml | 4 +- src/site/xdoc/guide/index.xml | 5 +- src/site/xdoc/index.xml | 4 +- src/site/xdoc/releases.xml | 4 +- 6 files changed, 41 insertions(+), 32 deletions(-) rename src/site/resources/images/{pool-logo-white.png => logo.png} (100%) diff --git a/src/site/resources/images/pool-logo-white.png b/src/site/resources/images/logo.png similarity index 100% rename from src/site/resources/images/pool-logo-white.png rename to src/site/resources/images/logo.png diff --git a/src/site/site.xml b/src/site/site.xml index 16bf543719..eddaf4ec34 100644 --- a/src/site/site.xml +++ b/src/site/site.xml @@ -15,30 +15,32 @@ See the License for the specific language governing permissions and limitations under the License. --> - - - Commons Pool - /images/pool-logo-white.png - /index.html - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/site/xdoc/examples.xml b/src/site/xdoc/examples.xml index 64d9687f3b..0cd88a6942 100644 --- a/src/site/xdoc/examples.xml +++ b/src/site/xdoc/examples.xml @@ -15,7 +15,9 @@ See the License for the specific language governing permissions and limitations under the License. --> - + Examples Apache Commons Documentation Team diff --git a/src/site/xdoc/guide/index.xml b/src/site/xdoc/guide/index.xml index 0887cf815b..4dc91fe33d 100644 --- a/src/site/xdoc/guide/index.xml +++ b/src/site/xdoc/guide/index.xml @@ -16,8 +16,9 @@ limitations under the License. --> - - + Developers Guide Apache Commons Documentation Team diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml index e4fa091b4d..5375acb996 100644 --- a/src/site/xdoc/index.xml +++ b/src/site/xdoc/index.xml @@ -15,7 +15,9 @@ See the License for the specific language governing permissions and limitations under the License. --> - + Overview Apache Commons Documentation Team diff --git a/src/site/xdoc/releases.xml b/src/site/xdoc/releases.xml index 3be642914d..5b9ae75686 100644 --- a/src/site/xdoc/releases.xml +++ b/src/site/xdoc/releases.xml @@ -15,7 +15,9 @@ See the License for the specific language governing permissions and limitations under the License. --> - + Downloads Apache Commons Documentation Team From b5c4da9d3787014df1332f74b62a877dbda20d1d Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Mon, 20 Jan 2025 10:36:23 -0500 Subject: [PATCH 25/44] Move Javadoc overview file to default location for Maven Javadoc plugin --- .../{java/org/apache/commons/pool3 => javadoc}/overview.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/{java/org/apache/commons/pool3 => javadoc}/overview.html (99%) diff --git a/src/main/java/org/apache/commons/pool3/overview.html b/src/main/javadoc/overview.html similarity index 99% rename from src/main/java/org/apache/commons/pool3/overview.html rename to src/main/javadoc/overview.html index 1d204886f1..68e0cdb52b 100644 --- a/src/main/java/org/apache/commons/pool3/overview.html +++ b/src/main/javadoc/overview.html @@ -46,4 +46,4 @@ GenericKeyedObjectPool}

- \ No newline at end of file + From a8395437578315a16a722661ed0f0736fa251c8b Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Mon, 20 Jan 2025 10:51:29 -0500 Subject: [PATCH 26/44] Add comment --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 1b81821204..4f3e8b4f42 100644 --- a/pom.xml +++ b/pom.xml @@ -105,6 +105,7 @@ 2.11.1 true + true false true From 5267e877376e519b3acd7af38dd636c541a05aea Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Tue, 21 Jan 2025 13:50:14 -0500 Subject: [PATCH 27/44] Add Checkstyle TypecastParenPad --- src/conf/checkstyle.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conf/checkstyle.xml b/src/conf/checkstyle.xml index 207a32fca3..690e1d8a4b 100644 --- a/src/conf/checkstyle.xml +++ b/src/conf/checkstyle.xml @@ -71,7 +71,7 @@ - + From e44cdd19d5f9b1122760472b4623adc083fc08a9 Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Tue, 21 Jan 2025 14:44:28 -0500 Subject: [PATCH 28/44] Fix ParenPad --- src/conf/checkstyle.xml | 1 + .../apache/commons/pool3/impl/LinkedBlockingDeque.java | 9 ++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/conf/checkstyle.xml b/src/conf/checkstyle.xml index 690e1d8a4b..2b959d03d3 100644 --- a/src/conf/checkstyle.xml +++ b/src/conf/checkstyle.xml @@ -71,6 +71,7 @@ + diff --git a/src/main/java/org/apache/commons/pool3/impl/LinkedBlockingDeque.java b/src/main/java/org/apache/commons/pool3/impl/LinkedBlockingDeque.java index b4232df5c7..3c5c3a3b5c 100644 --- a/src/main/java/org/apache/commons/pool3/impl/LinkedBlockingDeque.java +++ b/src/main/java/org/apache/commons/pool3/impl/LinkedBlockingDeque.java @@ -953,13 +953,12 @@ public E pollLast() { * @return the unlinked element * @throws InterruptedException if the current thread is interrupted */ - public E pollLast(final Duration timeout) - throws InterruptedException { + public E pollLast(final Duration timeout) throws InterruptedException { long nanos = timeout.toNanos(); lock.lockInterruptibly(); try { E x; - while ( (x = unlinkLast()) == null) { + while ((x = unlinkLast()) == null) { if (nanos <= 0) { return null; } @@ -1292,7 +1291,7 @@ public E takeFirst() throws InterruptedException { lock.lock(); try { E x; - while ( (x = unlinkFirst()) == null) { + while ((x = unlinkFirst()) == null) { notEmpty.await(); } return x; @@ -1312,7 +1311,7 @@ public E takeLast() throws InterruptedException { lock.lock(); try { E x; - while ( (x = unlinkLast()) == null) { + while ((x = unlinkLast()) == null) { notEmpty.await(); } return x; From 156c292669d8d7113f7d57453a36e41eed01cd28 Mon Sep 17 00:00:00 2001 From: Sebb Date: Tue, 21 Jan 2025 23:51:20 +0000 Subject: [PATCH 29/44] Obsolete files (no longer present) --- src/assembly/src-tar-gz.xml | 3 --- src/assembly/src-zip.xml | 2 -- 2 files changed, 5 deletions(-) diff --git a/src/assembly/src-tar-gz.xml b/src/assembly/src-tar-gz.xml index fbc391cfca..fdb9b209d4 100644 --- a/src/assembly/src-tar-gz.xml +++ b/src/assembly/src-tar-gz.xml @@ -25,7 +25,6 @@ - build.xml checkstyle.xml LICENSE.txt license-header.txt @@ -34,7 +33,6 @@ README.txt RELEASE-NOTES.txt findbugs-exclude-filter.xml - build.properties.sample lf @@ -73,4 +71,3 @@
- diff --git a/src/assembly/src-zip.xml b/src/assembly/src-zip.xml index f309ca6d64..3078e08252 100644 --- a/src/assembly/src-zip.xml +++ b/src/assembly/src-zip.xml @@ -25,7 +25,6 @@ - build.xml checkstyle.xml LICENSE.txt license-header.txt @@ -34,7 +33,6 @@ README.txt RELEASE-NOTES.txt findbugs-exclude-filter.xml - build.properties.sample crlf From a4ba4a6e1fc2f273726df2e460917a89a88997b4 Mon Sep 17 00:00:00 2001 From: Sebb Date: Tue, 21 Jan 2025 23:53:13 +0000 Subject: [PATCH 30/44] These files are under src/conf --- src/assembly/src-tar-gz.xml | 2 -- src/assembly/src-zip.xml | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/assembly/src-tar-gz.xml b/src/assembly/src-tar-gz.xml index fdb9b209d4..e34c0794e2 100644 --- a/src/assembly/src-tar-gz.xml +++ b/src/assembly/src-tar-gz.xml @@ -25,14 +25,12 @@ - checkstyle.xml LICENSE.txt license-header.txt NOTICE.txt pom.xml README.txt RELEASE-NOTES.txt - findbugs-exclude-filter.xml lf diff --git a/src/assembly/src-zip.xml b/src/assembly/src-zip.xml index 3078e08252..60f54727ae 100644 --- a/src/assembly/src-zip.xml +++ b/src/assembly/src-zip.xml @@ -25,14 +25,12 @@ - checkstyle.xml LICENSE.txt license-header.txt NOTICE.txt pom.xml README.txt RELEASE-NOTES.txt - findbugs-exclude-filter.xml crlf From 3c16d0e8d5122e15951a73a1d634bad2457a0f21 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Wed, 22 Jan 2025 07:18:45 -0500 Subject: [PATCH 31/44] Remove GitHub action file that is not needed The POOL_2.X branch contains its own workflow dir --- .github/workflows/maven-pool2.yml | 58 ------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 .github/workflows/maven-pool2.yml diff --git a/.github/workflows/maven-pool2.yml b/.github/workflows/maven-pool2.yml deleted file mode 100644 index 98731a38d6..0000000000 --- a/.github/workflows/maven-pool2.yml +++ /dev/null @@ -1,58 +0,0 @@ -# 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. - -name: Java CI - -on: - push: - branches: [ POOL_2_X ] - pull_request: - branches: [ POOL_2_X ] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - continue-on-error: ${{ matrix.experimental }} - strategy: - matrix: - java: [ 8, 11, 17, 21 ] - experimental: [false] - include: - - java: 23 - experimental: true - - java: 24-ea - experimental: true - - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - persist-credentials: false - - uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 - with: - distribution: 'temurin' - java-version: ${{ matrix.java }} - - name: Build with Maven - run: mvn --show-version --batch-mode --no-transfer-progress From b235a22f12ac5c7c8bc89d50787643430df30f8f Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Wed, 22 Jan 2025 07:19:14 -0500 Subject: [PATCH 32/44] Rename GitHub workflow file to basic name --- .github/workflows/{maven-pool3.yml => maven.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{maven-pool3.yml => maven.yml} (100%) diff --git a/.github/workflows/maven-pool3.yml b/.github/workflows/maven.yml similarity index 100% rename from .github/workflows/maven-pool3.yml rename to .github/workflows/maven.yml From 0faa1f1dd216d280deabb4f75e4eb43644ffaee0 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Wed, 22 Jan 2025 07:27:49 -0500 Subject: [PATCH 33/44] Set binary compatibility version to the current version until the major release is done --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 4f3e8b4f42..fae7a8ef1f 100644 --- a/pom.xml +++ b/pom.xml @@ -102,8 +102,8 @@ 12310488 site-content net.sf.cglib.proxy;resolution:=optional,* - - 2.11.1 + + 3.0.0-SNAPSHOT true true From e4a53dac768a05dd0f1e32912aee67ead6a51230 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Wed, 22 Jan 2025 07:28:43 -0500 Subject: [PATCH 34/44] Use the current XML Schema https://maven.apache.org/xsd/assembly-2.2.0.xsd - End file in EOL - Indent by 2 --- pom.xml | 3 +- src/assembly/bin.xml | 59 +++++++++++++++--------------- src/assembly/src-tar-gz.xml | 71 ------------------------------------- src/assembly/src-zip.xml | 71 ------------------------------------- src/assembly/src.xml | 46 ++++++++++++++++++++++++ 5 files changed, 76 insertions(+), 174 deletions(-) delete mode 100644 src/assembly/src-tar-gz.xml delete mode 100644 src/assembly/src-zip.xml create mode 100644 src/assembly/src.xml diff --git a/pom.xml b/pom.xml index fae7a8ef1f..c9100d931f 100644 --- a/pom.xml +++ b/pom.xml @@ -195,8 +195,7 @@ src/assembly/bin.xml - src/assembly/src-tar-gz.xml - src/assembly/src-zip.xml + src/assembly/src.xml gnu diff --git a/src/assembly/bin.xml b/src/assembly/bin.xml index 0a598cb5f4..327a457976 100644 --- a/src/assembly/bin.xml +++ b/src/assembly/bin.xml @@ -14,34 +14,33 @@ See the License for the specific language governing permissions and limitations under the License. --> - - bin - - tar.gz - zip - - false - - - - LICENSE.txt - NOTICE.txt - RELEASE-NOTES.txt - - - - target - - - *.jar - - 644 - - - target/site/apidocs - apidocs - - + + bin + + tar.gz + zip + + false + + + + LICENSE.txt + NOTICE.txt + RELEASE-NOTES.txt + + + + target + + + *.jar + + 644 + + + target/site/apidocs + apidocs + + diff --git a/src/assembly/src-tar-gz.xml b/src/assembly/src-tar-gz.xml deleted file mode 100644 index e34c0794e2..0000000000 --- a/src/assembly/src-tar-gz.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - src - - tar.gz - - ${project.artifactId}-${project.version}-src - - - - LICENSE.txt - license-header.txt - NOTICE.txt - pom.xml - README.txt - RELEASE-NOTES.txt - - lf - - - doc - lf - - - src/site/resources - - - src/site/xdoc - lf - - - src/site - - site.xml - - lf - - - src/changes - lf - - - src/main - lf - - - src/test/java - lf - - - src/test/resources - - - diff --git a/src/assembly/src-zip.xml b/src/assembly/src-zip.xml deleted file mode 100644 index 60f54727ae..0000000000 --- a/src/assembly/src-zip.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - src - - zip - - ${project.artifactId}-${project.version}-src - - - - LICENSE.txt - license-header.txt - NOTICE.txt - pom.xml - README.txt - RELEASE-NOTES.txt - - crlf - - - doc - crlf - - - src/site/resources - - - src/site/xdoc - crlf - - - src/site - - site.xml - - crlf - - - src/changes - crlf - - - src/main - crlf - - - src/test/java - crlf - - - src/test/resources - - - diff --git a/src/assembly/src.xml b/src/assembly/src.xml new file mode 100644 index 0000000000..25bc90cca7 --- /dev/null +++ b/src/assembly/src.xml @@ -0,0 +1,46 @@ + + + + src + + tar.gz + zip + + ${artifactId}-${version}-src + + + + BUILDING.txt + CODE_OF_CONDUCT.md + CONTRIBUTING.md + LICENSE.txt + NOTICE.txt + pom.xml + README.md + RELEASE-NOTES.txt + SECURITY.md + + + + src + + + From bf78b4dbd9a3b24449d9fad74280ed6aad877b55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 08:05:31 -0500 Subject: [PATCH 35/44] Bump github/codeql-action from 3.28.1 to 3.28.4 (#382) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.1 to 3.28.4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/b6a472f63d85b9c78a3ac5e89422239fc15e9b3c...ee117c905ab18f32fa0f66c2fe40ecc8013f3e04) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index e325ff7ba8..1936184259 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -61,7 +61,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # 3.28.1 + uses: github/codeql-action/init@ee117c905ab18f32fa0f66c2fe40ecc8013f3e04 # 3.28.4 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -72,7 +72,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # 3.28.1 + uses: github/codeql-action/autobuild@ee117c905ab18f32fa0f66c2fe40ecc8013f3e04 # 3.28.4 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -86,4 +86,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # 3.28.1 + uses: github/codeql-action/analyze@ee117c905ab18f32fa0f66c2fe40ecc8013f3e04 # 3.28.4 diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 09918be5ae..a8350f57b2 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -64,6 +64,6 @@ jobs: retention-days: 5 - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # 3.28.1 + uses: github/codeql-action/upload-sarif@ee117c905ab18f32fa0f66c2fe40ecc8013f3e04 # 3.28.4 with: sarif_file: results.sarif From e7600c22edfe28ceb3014bd44b1daa950be3bb0e Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Mon, 27 Jan 2025 09:19:10 -0500 Subject: [PATCH 36/44] Add contributing file from user feedback --- CONTRIBUTING.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5814970db1..7d6d075a6d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -61,16 +61,15 @@ Making Changes -------------- + Create a _topic branch_ for your isolated work. - * Usually you should base your branch on the `master` branch. - * A good topic branch name can be the JIRA bug id plus a keyword, e.g. `POOL-123-InputStream`. + * 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`. * 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. - * e.g. `POOL-123: Close input stream earlier` + * For example, `[POOL-123] Close input stream earlier` + Respect the original code style: - + Only use spaces for indentation. + + 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. - + Check for unnecessary whitespace with `git diff` -- check before committing. + Make sure you have added the necessary tests for your changes, typically in `src/test/java`. + Run all the tests with `mvn clean verify` to assure nothing else was accidentally broken. @@ -80,7 +79,7 @@ Making Trivial Changes The JIRA tickets are used to generate the changelog for the next release. For changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA. -In this case, it is appropriate to start the first line of a commit with '(doc)' instead of a ticket number. +In this case, it is appropriate to start the first line of a commit with '[doc]' or '[javadoc]' instead of a ticket number. Submitting Changes From 64afc91899813196ac94c1999b4bd71cef1d3e6e Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Tue, 28 Jan 2025 07:43:08 -0500 Subject: [PATCH 37/44] Grammar tweaks --- RELEASE-NOTES.txt | 293 +++++++++++++++++++++-------------- src/changes/release-notes.vm | 14 +- 2 files changed, 184 insertions(+), 123 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 75cd176311..d6f0f2f731 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,26 +1,70 @@ -Apache Commons Pool 2.12.0 RELEASE NOTES +Apache Commons Pool 2.12.1 Release Notes ---------------------------------------- -The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.12.0. +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.12.1. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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. +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. -No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. -Users of version 1.x should consult the migration guide on the Commons Pool web site. +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. + +Changes in version 2.12.1 include: + + +Fixed Bugs: +o Use java.time.Instant precision in org.apache.commons.pool2.impl.ThrowableCallStack.Snapshot throwable message. Thanks to Gary Gregory. +o GenericObjectPool.borrowObject(Duration) doesn't obey its borrowMaxWait Duration argument when the argument is different from GenericObjectPool.getMaxWaitDuration(). Thanks to Gary Gregory. +o POOL-418: The maximum wait time for GenericObjectPool.borrowObject(*) may exceed expectations due to a spurious thread wakeup. Thanks to Gary Gregory. +o Javadoc is missing its Overview page. Thanks to Gary Gregory. +o Migrate site generation templates to https://maven.apache.org/xsd/xdoc-2.0.xsd. Thanks to Gary Gregory. + +Changes: +o Bump org.apache.commons:commons-parent from 62 to 79. Thanks to Gary Gregory. +o [test] Bump commons-lang3 from 3.13.0 to 3.17.0. Thanks to Gary Gregory. +o [site] Pickup org.apache.bcel:bcel version from parent POM. Thanks to Gary Gregory. +o [test] Bump org.ow2.asm:asm-util from 9.5 to 9.7.1. 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.0 RELEASE NOTES + +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.12.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. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +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. They must not be implemented by clients 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, therefore, + 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. @@ -34,23 +78,26 @@ o Add GenericKeyedObjectPool.getKeys(). Thanks to Vamsi Pavan Kumar S o Add KeyedObjectPool.getKeys(). Thanks to Gary Gregory. o Add github/codeql-action. o Add BaseGenericObjectPool.Evictor.toString(). -o BaseGenericObjectPool now implements AutoCloseable. +o Make BaseGenericObjectPool implement AutoCloseable. +o Add BaseGenericObjectPool methods that return Duration and deprecate equivalents that return milliseconds as long. +o Add BaseObjectPoolConfig.DEFAULT_DURATION_BETWEEN_EVICTION_RUNS and deprecate BaseObjectPoolConfig.DEFAULT_TIME_BETWEEN_EVICTION_RUNS. Fixed Bugs: o POOL-401: Ensure that capacity freed by invalidateObject is available to all keyed pools. o POOL-391: Ensure capacity freed by clear is made available to GKOP borrowers. Thanks to Codievilky August. o POOL-402: Check blockWhenExhausted in hasBorrowWaiters #116. Thanks to Cp-John, Phil Steitz, Bruno P. Kinoshita, Gary Gregory. o Simplify test assertion with similar call but simpler. #131. Thanks to Arturo Bernal. -o POOL-269: Use generic exceptions instead of java.lang.Exception. Thanks to Gary Gregory. o POOL-405: NullPointerException GenericKeyedObjectPool.invalidateObject(GenericKeyedObjectPool.java:1343). Thanks to Gary Gregory. -o POOL-408: A typo of KeyedPooledObjectFactory on the site and Javadoc. Thanks to Zhenyu Luo, Gary Gregory. +o POOL-408: Fix a typo related to KeyedPooledObjectFactory on the site and Javadoc. Thanks to Zhenyu Luo, Gary Gregory. o Fail-fast on null input for DefaultPooledObjectInfo.DefaultPooledObjectInfo(PooledObject) with a NullPointerException. Thanks to Gary Gregory. o POOL-393: Improve BaseGenericObjectPool's JMX Register performance when creating many pools. Thanks to Shichao Yuan, Phil Steitz, Niall Pemberton. o Null-guard in GenericObjectPool.use(T) like other call sites of GenericObjectPool.getPooledObject(T). Thanks to Réda Housni Alaoui, Gary Gregory. -o POOL-411: NPE when deregistering key at end of borrow. Thanks to Richard Eckart de Castilho, Gary Gregory. -o Make private class GenericKeyedObjectPool.ObjectDeque class static. Thanks to Gary Gregory. -o Make private class BaseGenericObjectPool.StatsStore class static. Thanks to Gary Gregory. +o POOL-411: Guard against NPE when deregistering a key at the end of borrow. Thanks to Richard Eckart de Castilho, Gary Gregory. +o Make private GenericKeyedObjectPool.ObjectDeque class static. Thanks to Gary Gregory. +o Make private BaseGenericObjectPool.StatsStore class static. Thanks to Gary Gregory. o [StepSecurity] ci: Harden GitHub Actions #225. Thanks to step-security-bot, Gary Gregory. +o Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectToString(). Thanks to Gary Gregory. +o Fix possible NPE in DefaultPooledObjectInfo.getPooledObjectType(). Thanks to Gary Gregory. Changes: o Bump actions/cache from 2.1.6 to 3.0.10 #117, #138, #158, #174, #178. Thanks to Dependabot, Gary Gregory. @@ -71,6 +118,7 @@ o Bump commons-parent from 52 to 58 #173, #195, #204, #222. Thanks to o Bump japicmp-maven-plugin from 0.15.3 to 0.16.0. Thanks to Gary Gregory. o Bump animal-sniffer-maven-plugin 1.20 to 1.21. Thanks to Gary Gregory. o Bump Apache Commons BCEL 6.5.0 to 6.7.0 #194. Thanks to Gary Gregory, Dependabot. +o Bump commons-lang3 from 3.12.0 to 3.13.0. Thanks to Gary Gregory. For complete information on Apache Commons Pool, including instructions on how to submit bug reports, @@ -86,10 +134,10 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.11.1. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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. +tracking and pool monitoring. Version 2.7.x and up requires Java 8 or above. Version 2.6.x requires Java 7 or above. @@ -99,11 +147,11 @@ Version 2.0 requires 6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -145,10 +193,10 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.11.0. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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. +tracking and pool monitoring. Version 2.10.x requires Java 8 or above. Version 2.9.x requires Java 8 or above. @@ -161,11 +209,11 @@ Version 2.0 requires 6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -232,10 +280,10 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.10.0. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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. +tracking and pool monitoring. Version 2.10.x requires Java 8 or above. Version 2.9.x requires Java 8 or above. @@ -248,11 +296,11 @@ Version 2.0 requires 6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -304,10 +352,10 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.9.0. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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. +tracking and pool monitoring. Version 2.9.x requires Java 8 or above. Version 2.8.x requires Java 8 or above. @@ -319,11 +367,11 @@ Version 2.0 requires 6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -351,19 +399,21 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.8.1. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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 requires JDK level 1.6 or above. +tracking and pool monitoring. + +Version 2 requires JDK level 1.6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -404,19 +454,21 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.8.0. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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 requires JDK level 1.6 or above. +tracking and pool monitoring. + +Version 2 requires JDK level 1.6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -430,7 +482,7 @@ o POOL-379: Deprecate PoolUtils.prefill(KeyedObjectPool, K, int) in favor of Ke o POOL-380: Deprecate PoolUtils.prefill(KeyedObjectPool, Collection, int) in favor of KeyedObjectPool.addObjects(Collection, int). Thanks to Gary Gregory. Fixed Bugs: -o POOL-374: org.apache.commons.pool3.impl.GenericKeyedObjectPool.returnObject(K, T) should throw IllegalStateException instead of NullPointerException when a key is not found in the pool map. Thanks to Gary Gregory, Phil Steitz. +o POOL-374: org.apache.commons.pool2.impl.GenericKeyedObjectPool.returnObject(K, T) should throw IllegalStateException instead of NullPointerException when a key is not found in the pool map. Thanks to Gary Gregory, Phil Steitz. o POOL-376: Fixed regression from original fix for POOL-356 which could result in NPE when destroying objects. Thanks to Sazzadul Hoque, Phil Steitz. o POOL-326: Eliminated NPE / ISE exceptions due to keyed pools being prematurely removed. Thanks to Phil Steitz. o Close BufferedOutputStream in test before calling toString on underlying BufferedOutputStream #26. Thanks to emopers. @@ -456,19 +508,21 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.7.0. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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 requires JDK level 1.6 or above. +tracking and pool monitoring. + +Version 2 requires JDK level 1.6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -477,8 +531,8 @@ This is a feature release (Java 8 or above). Changes in version 2.7.0 include: New features: -o POOL-370: Add org.apache.commons.pool3.PooledObject#getBorrowedCount(). Thanks to Mark Thomas, Gary Gregory. -o POOL-371: Add org.apache.commons.pool3.PooledObject#setRequireFullStackTrace(boolean). Thanks to Matt Sicker, Gary Gregory. +o POOL-370: Add org.apache.commons.pool2.PooledObject#getBorrowedCount(). Thanks to Mark Thomas, Gary Gregory. +o POOL-371: Add org.apache.commons.pool2.PooledObject#setRequireFullStackTrace(boolean). Thanks to Matt Sicker, Gary Gregory. Fixed Bugs: o POOL-361: Move validation for newly created objects into create(). Fixes #23. Thanks to Pablo, Phil Steitz, Bruno P. Kinoshita. @@ -503,19 +557,21 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.6.2. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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 requires JDK level 1.6 or above. +tracking and pool monitoring. + +Version 2 requires JDK level 1.6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -524,7 +580,7 @@ This is a maintenance release. Changes in version 2.6.2 include: Fixed Bugs: -o POOL-362: Always null out org.apache.commons.pool3.impl.BaseGenericObjectPool.evictionIterator to match org.apache.commons.pool3.impl.BaseGenericObjectPool.evictor. +o POOL-362: Always null out org.apache.commons.pool2.impl.BaseGenericObjectPool.evictionIterator to match org.apache.commons.pool2.impl.BaseGenericObjectPool.evictor. o POOL-363: Evictor Thread prevents Spring Context shutdown in standalone app. Thanks to Josh Landin. o POOL-348: The commons-pool-evictor-thread should run as a Deamon. Thanks to Josh Landin. @@ -541,19 +597,21 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.6.1. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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 requires JDK level 1.6 or above. +tracking and pool monitoring. + +Version 2 requires JDK level 1.6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -590,8 +648,8 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.6.0. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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. @@ -602,11 +660,11 @@ tracking and pool monitoring. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -617,7 +675,7 @@ Changes in version 2.6.0 include: Fixed Bugs: o POOL-337: Ensure cancelled eviction tasks are removed from scheduler. Thanks to Reinald Verheij. o POOL-338: GenericObjectPool constructor may throw an exception under OSGi. Thanks to Michael C, Gary Gregory. -o POOL-324: org.apache.commons.pool3.impl.GenericObjectPool.getFactoryType() throws java.lang.ClassCastException. Thanks to Jay Xu, Gary Gregory. +o POOL-324: org.apache.commons.pool2.impl.GenericObjectPool.getFactoryType() throws java.lang.ClassCastException. Thanks to Jay Xu, Gary Gregory. o POOL-344: Delete repeated call startEvictor. Thanks to Yulin Wang. Changes: @@ -644,19 +702,21 @@ Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.5.0. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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 requires JDK level 1.6 or above. +tracking and pool monitoring. + +Version 2 requires JDK level 1.6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -673,7 +733,7 @@ o POOL-335: Make abandoned logging stack trace requirements configurable. This Changes: o POOL-331: Update from Java 6 to 7. o POOL-333: Update optional dependency asm-util from 5.2 to 6.0. -o POOL-334: org.apache.commons.pool3.impl.ThrowableCallStack.Snapshot is missing serialVersionUID. +o POOL-334: org.apache.commons.pool2.impl.ThrowableCallStack.Snapshot is missing serialVersionUID. For complete information on Apache Commons Pool, including instructions on how to submit bug reports, @@ -687,19 +747,21 @@ https://commons.apache.org/proper/commons-pool/ The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.4.3. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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 requires JDK level 1.6 or above. +tracking and pool monitoring. + +Version 2 requires JDK level 1.6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.3. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -746,19 +808,21 @@ https://commons.apache.org/proper/commons-pool/ The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.4.2. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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 requires JDK level 1.6 or above. +tracking and pool monitoring. + +Version 2 requires JDK level 1.6 or above. No client code changes are required to migrate from versions 2.0-2.3 to version 2.4.2. Users of version 1.x should consult the migration guide on the Commons Pool web site. -NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. @@ -773,10 +837,7 @@ o POOL-298: Changed default jmxNameBase in BaseObjectPoolConfig to the correct o POOL-300: Added PrintWriter flush to DefaultPooledObject's printStackTrace method. - 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/ - - diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm index e4b3356a4f..a4205afeba 100644 --- a/src/changes/release-notes.vm +++ b/src/changes/release-notes.vm @@ -18,21 +18,21 @@ The ${developmentTeam} is pleased to announce the release of ${project.name} ${version}. -Apache Commons Pool provides an object-pooling API and a number of object pool implementations. -Version 2 contains a completely re-written pooling implementation compared to the 1.x series. +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. +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 +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods - that will be made available via JMX. They must not be implemented by clients 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, therefore, + 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. From 68dd14f5467e729b9dba4dd43ff76845ccd36f51 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Wed, 29 Jan 2025 10:25:03 -0500 Subject: [PATCH 38/44] Bump org.apache.commons:commons-parent from 79 to 80 Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS --- pom.xml | 2 +- src/changes/changes.xml | 17 +++++++---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index c9100d931f..3c40b90603 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.apache.commons commons-parent - 79 + 80 commons-pool3 3.0.0-SNAPSHOT diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 4c92854aab..a3d3a6d2c2 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -45,23 +45,20 @@ The type attribute can be add,update,fix,remove. + + Add ReslientPooledObjectFactory to provide resilence against factory outages. + 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). - - Deprecations from version 2.x have been removed. - + Deprecations from version 2.x have been removed. - - Bump Java from 8 to 17. - + Bump Java from 8 to 17. + Bump org.apache.commons:commons-parent from 79 to 80. + Bump org.apache.commons:commons-parent from 58 to 78 #297, #328, #338, #341, #347, #351, #354, #361. Bump org.ow2.asm:asm-util from 9.5 to 9.7.1 #252, #294, #355. Bump org.apache.commons:commons-lang3 from 3.13.0 to 3.17.0 #326, #333, #342. Bump org.apache.bcel:bcel from 6.7.0 to 6.10.0 #263, #306, #327. Bump org.hamcrest:hamcrest-library from 2.2 to 3.0 #330. - - - Add ReslientPooledObjectFactory to provide resilence against factory outages. - From e20a087eef587f5dbf0c27d06c4cd4203f174cef Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Thu, 30 Jan 2025 18:22:39 -0500 Subject: [PATCH 39/44] Fix XML changes.xml --- src/changes/changes.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index a3d3a6d2c2..e23db2ac31 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -51,9 +51,8 @@ The type attribute can be add,update,fix,remove. Deprecations from version 2.x have been removed. - Bump Java from 8 to 17. + Bump Java from 8 to 17. Bump org.apache.commons:commons-parent from 79 to 80. - Bump org.apache.commons:commons-parent from 58 to 78 #297, #328, #338, #341, #347, #351, #354, #361. Bump org.ow2.asm:asm-util from 9.5 to 9.7.1 #252, #294, #355. Bump org.apache.commons:commons-lang3 from 3.13.0 to 3.17.0 #326, #333, #342. From 3218042141cd6121d5b59a442861c9c2f3ac2045 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Thu, 30 Jan 2025 18:32:42 -0500 Subject: [PATCH 40/44] Fix Javadoc warnings (Java 21) --- .../pool3/BaseKeyedPooledObjectFactory.java | 7 + .../org/apache/commons/pool3/BaseObject.java | 7 + .../apache/commons/pool3/BaseObjectPool.java | 7 + .../pool3/BasePooledObjectFactory.java | 7 + .../pool3/impl/BaseObjectPoolConfig.java | 7 + .../pool3/impl/DefaultEvictionPolicy.java | 7 + .../commons/pool3/impl/GenericObjectPool.java | 8 +- .../pool3/impl/GenericObjectPoolConfig.java | 7 + .../impl/ResilientPooledObjectFactory.java | 604 ++++++++++-------- 9 files changed, 374 insertions(+), 287 deletions(-) diff --git a/src/main/java/org/apache/commons/pool3/BaseKeyedPooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/BaseKeyedPooledObjectFactory.java index cd6b7282aa..83d04dda65 100644 --- a/src/main/java/org/apache/commons/pool3/BaseKeyedPooledObjectFactory.java +++ b/src/main/java/org/apache/commons/pool3/BaseKeyedPooledObjectFactory.java @@ -35,6 +35,13 @@ */ public abstract class BaseKeyedPooledObjectFactory extends BaseObject implements KeyedPooledObjectFactory { + /** + * Constructs a new instance. + */ + public BaseKeyedPooledObjectFactory() { + // empty + } + /** * Reinitializes an instance to be returned by the pool. *

diff --git a/src/main/java/org/apache/commons/pool3/BaseObject.java b/src/main/java/org/apache/commons/pool3/BaseObject.java index f040f4607a..1f38cdc8b7 100644 --- a/src/main/java/org/apache/commons/pool3/BaseObject.java +++ b/src/main/java/org/apache/commons/pool3/BaseObject.java @@ -23,6 +23,13 @@ */ public abstract class BaseObject { + /** + * Constructs a new instance. + */ + public BaseObject() { + // empty + } + @Override public String toString() { final StringBuilder builder = new StringBuilder(); diff --git a/src/main/java/org/apache/commons/pool3/BaseObjectPool.java b/src/main/java/org/apache/commons/pool3/BaseObjectPool.java index 6be1206543..ac70463e6d 100644 --- a/src/main/java/org/apache/commons/pool3/BaseObjectPool.java +++ b/src/main/java/org/apache/commons/pool3/BaseObjectPool.java @@ -32,6 +32,13 @@ public abstract class BaseObjectPool extends BaseObject private volatile boolean closed; + /** + * Constructs a new instance. + */ + public BaseObjectPool() { + // empty + } + /** * Not supported in this base implementation. Subclasses should override * this behavior. diff --git a/src/main/java/org/apache/commons/pool3/BasePooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/BasePooledObjectFactory.java index ec78f08893..387fbe0b4b 100644 --- a/src/main/java/org/apache/commons/pool3/BasePooledObjectFactory.java +++ b/src/main/java/org/apache/commons/pool3/BasePooledObjectFactory.java @@ -33,6 +33,13 @@ */ public abstract class BasePooledObjectFactory extends BaseObject implements PooledObjectFactory { + /** + * Constructs a new instance. + */ + public BasePooledObjectFactory() { + // empty + } + /** * No-op. * diff --git a/src/main/java/org/apache/commons/pool3/impl/BaseObjectPoolConfig.java b/src/main/java/org/apache/commons/pool3/impl/BaseObjectPoolConfig.java index 89d3a7769a..c39aef69cd 100644 --- a/src/main/java/org/apache/commons/pool3/impl/BaseObjectPoolConfig.java +++ b/src/main/java/org/apache/commons/pool3/impl/BaseObjectPoolConfig.java @@ -203,6 +203,13 @@ public abstract class BaseObjectPoolConfig extends BaseObject implements Clon private String jmxNameBase = DEFAULT_JMX_NAME_BASE; + /** + * Constructs a new instance. + */ + public BaseObjectPoolConfig() { + // empty + } + /** * Gets the value for the {@code blockWhenExhausted} configuration attribute * for pools created with this configuration instance. diff --git a/src/main/java/org/apache/commons/pool3/impl/DefaultEvictionPolicy.java b/src/main/java/org/apache/commons/pool3/impl/DefaultEvictionPolicy.java index 23582a4b41..3a981717aa 100644 --- a/src/main/java/org/apache/commons/pool3/impl/DefaultEvictionPolicy.java +++ b/src/main/java/org/apache/commons/pool3/impl/DefaultEvictionPolicy.java @@ -42,6 +42,13 @@ */ public class DefaultEvictionPolicy implements EvictionPolicy { + /** + * Constructs a new instance. + */ + public DefaultEvictionPolicy() { + // empty + } + @Override public boolean evict(final EvictionConfig config, final PooledObject underTest, final int idleCount) { // @formatter:off diff --git a/src/main/java/org/apache/commons/pool3/impl/GenericObjectPool.java b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPool.java index 07435775b4..281f272039 100644 --- a/src/main/java/org/apache/commons/pool3/impl/GenericObjectPool.java +++ b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPool.java @@ -593,10 +593,6 @@ private PooledObject create(final Duration maxWaitDuration) throws E { return p; } - private Duration durationSince(final Instant startInstant) { - return Duration.between(startInstant, Instant.now()); - } - /** * Destroys a wrapped pooled object. * @@ -617,6 +613,10 @@ private void destroy(final PooledObject toDestroy, final DestroyMode destroyM } } + private Duration durationSince(final Instant startInstant) { + return Duration.between(startInstant, Instant.now()); + } + /** * Tries to ensure that {@code idleCount} idle instances exist in the pool. *

diff --git a/src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolConfig.java b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolConfig.java index 777b213556..cbfb814b4f 100644 --- a/src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolConfig.java +++ b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolConfig.java @@ -54,6 +54,13 @@ public class GenericObjectPoolConfig extends BaseObjectPoolConfig { private int minIdle = DEFAULT_MIN_IDLE; + /** + * Constructs a new instance. + */ + public GenericObjectPoolConfig() { + // empty + } + @SuppressWarnings("unchecked") @Override public GenericObjectPoolConfig clone() { diff --git a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java index 885bce3b20..2100b8517f 100644 --- a/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java +++ b/src/main/java/org/apache/commons/pool3/impl/ResilientPooledObjectFactory.java @@ -39,41 +39,246 @@ */ public class ResilientPooledObjectFactory implements PooledObjectFactory { + /** + * Adder thread that adds objects to the pool, waiting for a fixed delay between + * adds. + *

+ * The adder thread will stop under any of the following conditions: + *

    + *
  • The pool is closed.
  • + *
  • The factory is down.
  • + *
  • The pool is full.
  • + *
  • The pool has no waiters.
  • + *
+ */ + class Adder extends Thread { + + private static final int MAX_FAILURES = 5; + + private boolean killed; + private boolean running; + private int failures; + + public boolean isRunning() { + return running; + } + + public void kill() { + killed = true; + } + + @Override + public void run() { + running = true; + while (!up && !killed && !pool.isClosed()) { + try { + pool.addObject(); + if (pool.getNumWaiters() == 0 || pool.getNumActive() + pool.getNumIdle() == pool.getMaxTotal()) { + kill(); + } + } catch (final Throwable e) { + failures++; + if (failures > MAX_FAILURES) { + kill(); + } + } finally { + // Wait for delay + try { + sleep(delay.toMillis()); + } catch (final InterruptedException e) { + killed = true; + } + } + } + killed = true; + running = false; + } + } + /** + * Record of a makeObject event. + */ + static class MakeEvent { + private final Instant startTime; + private Instant endTime; + private boolean success; + private Throwable exception; + + /** + * Constructor set statTime to now. + */ + public MakeEvent() { + startTime = Instant.now(); + } + + /** + * Mark completion of makeObject call. + */ + public void end() { + this.endTime = Instant.now(); + } + + /** + * @return the time the makeObject call ended + */ + public Instant getEndTime() { + return endTime; + } + + /** + * @return the exception thrown by the makeObject call + */ + public Throwable getException() { + return exception; + } + + /** + * @return the start time of the makeObject call + */ + public Instant getStartTime() { + return startTime; + } + + /** + * @return true if the makeObject call succeeded + */ + public boolean isSuccess() { + return success; + } + + /** + * Set the exception thrown by the makeObject call. + * + * @param exception + */ + public void setException(final Throwable exception) { + this.exception = exception; + } + + /** + * Set the success status of the makeObject call. + * + * @param success + */ + public void setSuccess(final boolean success) { + this.success = success; + } + } + /** + * Monitor thread that runs checks to examine the makeObject log and pool state. + */ + class Monitor extends Thread { + @Override + public void run() { + while (monitoring && !pool.isClosed()) { + runChecks(); + try { + sleep(timeBetweenChecks.toMillis()); + } catch (final InterruptedException e) { + monitoring = false; + } catch (final Throwable e) { + monitoring = false; + throw e; + } + } + monitoring = false; + } + } private static final int DEFAULT_LOG_SIZE = 10; private static final Duration DEFAULT_DELAY = Duration.ofSeconds(1); private static final Duration DEFAULT_LOOK_BACK = Duration.ofMinutes(5); private static final Duration DEFAULT_TIME_BETWEEN_CHECKS = Duration.ofSeconds(10); + + /** + * Gets the default time between makeObject calls by the adder thread. + * + * @return the default time between makeObject calls by the adder thread. + */ + public static Duration getDefaultDelay() { + return DEFAULT_DELAY; + } + + /** + * Gets the default makeObject log size. + * + * @return the default makeObject log size. + */ + public static int getDefaultLogSize() { + return DEFAULT_LOG_SIZE; + } + + /** + * Gets the default look back duration. + * + * @return the default look back duration. + */ + public static Duration getDefaultLookBack() { + return DEFAULT_LOOK_BACK; + } + + /** + * Gets the default time between monitor checks. + * + * @return the default time between monitor checks. + */ + public static Duration getDefaultTimeBetweenChecks() { + return DEFAULT_TIME_BETWEEN_CHECKS; + } + /** Wrapped factory */ private final PooledObjectFactory factory; + /** GOP that factory is attached to. */ private GenericObjectPool pool; + /** Size of the circular log of makeObject events */ private int logSize; + /** Duration of time window for statistics */ private final Duration lookBack; + /** Circular log of makeObject events */ private final ConcurrentLinkedQueue makeObjectLog = new ConcurrentLinkedQueue<>(); + /** Time of last factory failure */ private Instant downStart; + /** Time factory last returned to "up" state. */ private Instant upStart; + /** Exception counts */ @SuppressWarnings("rawtypes") private final ConcurrentHashMap exceptionCounts = new ConcurrentHashMap<>(); + /** Whether or not the factory is "up" */ private boolean up = true; + /** * @return the factory wrapped by this resilient factory */ /** Whether or not the monitor thread is running */ private boolean monitoring; + /** Time to wait between object creations by the adder thread */ private final Duration delay; + /** Time between monitor checks */ private Duration timeBetweenChecks = Duration.ofSeconds(10); + + // Delegate all other methods to the wrapped factory. + /** Adder thread */ private Adder adder; + /** + * Construct a ResilientPooledObjectFactory from a factory and pool, using + * defaults for logSize, delay, and lookBack. + * + * @param factory PooledObjectFactory to wrap + */ + public ResilientPooledObjectFactory(final PooledObjectFactory factory) { + this(factory, DEFAULT_LOG_SIZE, DEFAULT_DELAY, DEFAULT_LOOK_BACK, DEFAULT_TIME_BETWEEN_CHECKS); + } + /** * Construct a ResilientPooledObjectFactory from a factory with specified * parameters. @@ -94,79 +299,126 @@ public ResilientPooledObjectFactory(final PooledObjectFactory factory, this.timeBetweenChecks = timeBetweenChecks; } + @Override + public void activateObject(final PooledObject p) throws E { + factory.activateObject(p); + } + + @Override + public void destroyObject(final PooledObject p) throws E { + factory.destroyObject(p); + } + /** - * Construct a ResilientPooledObjectFactory from a factory and pool, using - * defaults for logSize, delay, and lookBack. + * Gets the time to wait between object creations by the adder thread. * - * @param factory PooledObjectFactory to wrap + * @return the time to wait between object creations by the adder thread. */ - public ResilientPooledObjectFactory(final PooledObjectFactory factory) { - this(factory, DEFAULT_LOG_SIZE, DEFAULT_DELAY, DEFAULT_LOOK_BACK, DEFAULT_TIME_BETWEEN_CHECKS); + public Duration getDelay() { + return delay; } /** - * Sets the underlying pool. For tests. + * Gets the start time of the last factory outage. * - * @param pool the underlying pool. + * @return the start time of the last factory outage. */ - void setPool(final GenericObjectPool pool) { - this.pool = pool; + public Instant getDownStart() { + return downStart; } /** - * Set the time between monitor checks. + * Gets the size of the makeObject log. * - * @param timeBetweenChecks The time between monitor checks. + * @return the size of the makeObject log. */ - public void setTimeBetweenChecks(final Duration timeBetweenChecks) { - this.timeBetweenChecks = timeBetweenChecks; + public int getLogSize() { + return logSize; } /** - * Set the makeObject log size. + * Gets the look back duration. * - * @param logSize the number of makeObject events to keep in the log + * @return the look back duration. */ - public void setLogSize(final int logSize) { - this.logSize = logSize; + public Duration getLookBack() { + return lookBack; } /** - * Delegate to the wrapped factory, but log the makeObject call. + * Gets a copy of the makeObject log. + * + * @return a copy of the makeObject log. */ - @Override - public PooledObject makeObject() throws E { - final MakeEvent makeEvent = new MakeEvent(); - try { - final PooledObject obj = factory.makeObject(); - makeEvent.setSuccess(!PooledObject.isNull(obj)); - return obj; - } catch (final Throwable t) { - makeEvent.setSuccess(false); - makeEvent.setException(t); - exceptionCounts.put(t.getClass(), exceptionCounts.getOrDefault(t, 0) + 1); - throw t; - } finally { - makeEvent.end(); - makeObjectLog.add(makeEvent); - } + public List getMakeObjectLog() { + final ArrayList makeObjectLog = new ArrayList<>(); + return new ArrayList<>(makeObjectLog.stream().toList()); } - // Delegate all other methods to the wrapped factory. + /** + * Gets the duration between monitor checks. + * + * @return the duration between monitor checks. + */ + public Duration getTimeBetweenChecks() { + return timeBetweenChecks; + } - @Override - public void destroyObject(final PooledObject p) throws E { - factory.destroyObject(p); + /** + * Gets the the time of the last factory outage recovery. + * + * @return the time of the last factory outage recovery. + */ + public Instant getUpStart() { + return upStart; } - @Override - public boolean validateObject(final PooledObject p) { - return factory.validateObject(p); + /** + * Tests whether the adder is running. + * + * @return true if the adder is running. + */ + public boolean isAdderRunning() { + return adder != null && adder.isRunning(); } + /** + * Tests whether the the monitor is running. + * + * @return true if the monitor is running. + */ + public boolean isMonitorRunning() { + return monitoring; + } + + /** + * Tests whether the factory is considered "up". + * + * @return true if the factory is considered "up". + */ + public boolean isUp() { + return up; + } + + /** + * Delegate to the wrapped factory, but log the makeObject call. + */ @Override - public void activateObject(final PooledObject p) throws E { - factory.activateObject(p); + public PooledObject makeObject() throws E { + final MakeEvent makeEvent = new MakeEvent(); + try { + final PooledObject obj = factory.makeObject(); + makeEvent.setSuccess(!PooledObject.isNull(obj)); + return obj; + } catch (final Throwable t) { + makeEvent.setSuccess(false); + makeEvent.setException(t); + exceptionCounts.put(t.getClass(), exceptionCounts.getOrDefault(t, 0) + 1); + throw t; + } finally { + makeEvent.end(); + makeObjectLog.add(makeEvent); + } } @Override @@ -223,38 +475,34 @@ protected void runChecks() { } /** - * @return true if the factory is considered "up". - */ - public boolean isUp() { - return up; - } - - /** - * @return true if the adder is running + * Sets the makeObject log size. + * + * @param logSize the number of makeObject events to keep in the log */ - public boolean isAdderRunning() { - return adder != null && adder.isRunning(); + public void setLogSize(final int logSize) { + this.logSize = logSize; } /** - * @return true if the monitor is running + * Sets the underlying pool. For tests. + * + * @param pool the underlying pool. */ - public boolean isMonitorRunning() { - return monitoring; + void setPool(final GenericObjectPool pool) { + this.pool = pool; } /** - * Start the monitor thread with the given time between checks. + * Sets the time between monitor checks. * - * @param timeBetweenChecks time between checks + * @param timeBetweenChecks The time between monitor checks. */ - public void startMonitor(final Duration timeBetweenChecks) { + public void setTimeBetweenChecks(final Duration timeBetweenChecks) { this.timeBetweenChecks = timeBetweenChecks; - startMonitor(); } /** - * Start the monitor thread with the currently configured time between checks. + * Starts the monitor thread with the currently configured time between checks. */ public void startMonitor() { monitoring = true; @@ -262,235 +510,25 @@ public void startMonitor() { } /** - * Stop the monitor thread. - */ - public void stopMonitor() { - monitoring = false; - } - - /** - * Adder thread that adds objects to the pool, waiting for a fixed delay between - * adds. - *

- * The adder thread will stop under any of the following conditions: - *

    - *
  • The pool is closed.
  • - *
  • The factory is down.
  • - *
  • The pool is full.
  • - *
  • The pool has no waiters.
  • - *
- */ - class Adder extends Thread { - - private static final int MAX_FAILURES = 5; - - private boolean killed; - private boolean running; - private int failures; - - @Override - public void run() { - running = true; - while (!up && !killed && !pool.isClosed()) { - try { - pool.addObject(); - if (pool.getNumWaiters() == 0 || pool.getNumActive() + pool.getNumIdle() == pool.getMaxTotal()) { - kill(); - } - } catch (final Throwable e) { - failures++; - if (failures > MAX_FAILURES) { - kill(); - } - } finally { - // Wait for delay - try { - sleep(delay.toMillis()); - } catch (final InterruptedException e) { - killed = true; - } - } - } - killed = true; - running = false; - } - - public boolean isRunning() { - return running; - } - - public void kill() { - killed = true; - } - } - - /** - * Record of a makeObject event. - */ - static class MakeEvent { - private final Instant startTime; - private Instant endTime; - private boolean success; - private Throwable exception; - - /** - * Constructor set statTime to now. - */ - public MakeEvent() { - startTime = Instant.now(); - } - - /** - * @return the time the makeObject call ended - */ - public Instant getEndTime() { - return endTime; - } - - /** - * Mark completion of makeObject call. - */ - public void end() { - this.endTime = Instant.now(); - } - - /** - * @return true if the makeObject call succeeded - */ - public boolean isSuccess() { - return success; - } - - /** - * Set the success status of the makeObject call. - * - * @param success - */ - public void setSuccess(final boolean success) { - this.success = success; - } - - /** - * @return the exception thrown by the makeObject call - */ - public Throwable getException() { - return exception; - } - - /** - * Set the exception thrown by the makeObject call. - * - * @param exception - */ - public void setException(final Throwable exception) { - this.exception = exception; - } - - /** - * @return the start time of the makeObject call - */ - public Instant getStartTime() { - return startTime; - } - } - - /** - * Monitor thread that runs checks to examine the makeObject log and pool state. - */ - class Monitor extends Thread { - @Override - public void run() { - while (monitoring && !pool.isClosed()) { - runChecks(); - try { - sleep(timeBetweenChecks.toMillis()); - } catch (final InterruptedException e) { - monitoring = false; - } catch (final Throwable e) { - monitoring = false; - throw e; - } - } - monitoring = false; - } - } - - /** - * @return the default makeObject log size - */ - public static int getDefaultLogSize() { - return DEFAULT_LOG_SIZE; - } - - /** - * @return the default time between makeObject calls by the adder thread - */ - public static Duration getDefaultDelay() { - return DEFAULT_DELAY; - } - - /** - * @return the default look back - */ - public static Duration getDefaultLookBack() { - return DEFAULT_LOOK_BACK; - } - - /** - * @return the default time between monitor checks - */ - public static Duration getDefaultTimeBetweenChecks() { - return DEFAULT_TIME_BETWEEN_CHECKS; - } - - /** - * @return the size of the makeObject log - */ - public int getLogSize() { - return logSize; - } - - /** - * @return the look back duration - */ - public Duration getLookBack() { - return lookBack; - } - - /** - * @return a copy of the makeObject log - */ - public List getMakeObjectLog() { - final ArrayList makeObjectLog = new ArrayList<>(); - return new ArrayList<>(makeObjectLog.stream().toList()); - } - - /** - * @return the start time of the last factory outage - */ - public Instant getDownStart() { - return downStart; - } - - /** - * @return the time of the last factory outage recovery + * Starts the monitor thread with the given time between checks. + * + * @param timeBetweenChecks time between checks */ - public Instant getUpStart() { - return upStart; + public void startMonitor(final Duration timeBetweenChecks) { + this.timeBetweenChecks = timeBetweenChecks; + startMonitor(); } /** - * @return the time to wait between object creations by the adder thread + * Stops the monitor thread. */ - public Duration getDelay() { - return delay; + public void stopMonitor() { + monitoring = false; } - /** - * @return the time between monitor checks - */ - public Duration getTimeBetweenChecks() { - return timeBetweenChecks; + @Override + public boolean validateObject(final PooledObject p) { + return factory.validateObject(p); } } From 5fa7e7228e8a35c7a4d245214e2a581496004cb4 Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Thu, 30 Jan 2025 18:32:50 -0500 Subject: [PATCH 41/44] Bump org.apache.commons:commons-parent from 80 to 81 --- pom.xml | 2 +- src/changes/changes.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 3c40b90603..ab65117628 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.apache.commons commons-parent - 80 + 81 commons-pool3 3.0.0-SNAPSHOT diff --git a/src/changes/changes.xml b/src/changes/changes.xml index e23db2ac31..a9c9c2dac6 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -52,7 +52,7 @@ The type attribute can be add,update,fix,remove. Deprecations from version 2.x have been removed. Bump Java from 8 to 17. - Bump org.apache.commons:commons-parent from 79 to 80. + Bump org.apache.commons:commons-parent from 79 to 81. Bump org.apache.commons:commons-parent from 58 to 78 #297, #328, #338, #341, #347, #351, #354, #361. Bump org.ow2.asm:asm-util from 9.5 to 9.7.1 #252, #294, #355. Bump org.apache.commons:commons-lang3 from 3.13.0 to 3.17.0 #326, #333, #342. From de4bb6b46b107269fcf94af66321bda99be73dcf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Jan 2025 07:25:45 -0500 Subject: [PATCH 42/44] Bump actions/setup-java from 4.6.0 to 4.7.0 (#383) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.6.0 to 4.7.0. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/7a6d8a8234af8eb26422e24e3006232cccaa061b...3a4f6e1af504cf6a31855fa899c6aa5355ba6c12) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/maven.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 1936184259..66805bada9 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -54,7 +54,7 @@ jobs: key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - - uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 + - uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0 with: java-version: 17 distribution: 'temurin' diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 61be54f065..669cc6ea69 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -48,7 +48,7 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@7a6d8a8234af8eb26422e24e3006232cccaa061b # v4.6.0 + uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0 with: distribution: 'temurin' java-version: ${{ matrix.java }} From 3cb381012ff8d3a2b32cade1bac141af49777d37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Jan 2025 07:25:58 -0500 Subject: [PATCH 43/44] Bump github/codeql-action from 3.28.4 to 3.28.8 (#384) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.4 to 3.28.8. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/ee117c905ab18f32fa0f66c2fe40ecc8013f3e04...dd746615b3b9d728a6a37ca2045b68ca76d4841a) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 66805bada9..a649ec71a0 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -61,7 +61,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@ee117c905ab18f32fa0f66c2fe40ecc8013f3e04 # 3.28.4 + uses: github/codeql-action/init@dd746615b3b9d728a6a37ca2045b68ca76d4841a # 3.28.8 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -72,7 +72,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@ee117c905ab18f32fa0f66c2fe40ecc8013f3e04 # 3.28.4 + uses: github/codeql-action/autobuild@dd746615b3b9d728a6a37ca2045b68ca76d4841a # 3.28.8 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -86,4 +86,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@ee117c905ab18f32fa0f66c2fe40ecc8013f3e04 # 3.28.4 + uses: github/codeql-action/analyze@dd746615b3b9d728a6a37ca2045b68ca76d4841a # 3.28.8 diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index a8350f57b2..186247a0b0 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -64,6 +64,6 @@ jobs: retention-days: 5 - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@ee117c905ab18f32fa0f66c2fe40ecc8013f3e04 # 3.28.4 + uses: github/codeql-action/upload-sarif@dd746615b3b9d728a6a37ca2045b68ca76d4841a # 3.28.8 with: sarif_file: results.sarif From 8521575eb1372ec5bfc49846af72d3925edba318 Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Fri, 31 Jan 2025 16:00:24 -0500 Subject: [PATCH 44/44] Remove obsolete entry --- src/changes/changes.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index a9c9c2dac6..6a1ffd97a9 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -57,7 +57,6 @@ The type attribute can be add,update,fix,remove. Bump org.ow2.asm:asm-util from 9.5 to 9.7.1 #252, #294, #355. Bump org.apache.commons:commons-lang3 from 3.13.0 to 3.17.0 #326, #333, #342. Bump org.apache.bcel:bcel from 6.7.0 to 6.10.0 #263, #306, #327. - Bump org.hamcrest:hamcrest-library from 2.2 to 3.0 #330.