Hi Gary, First, thanks for doing this. There are a lot of good fixes in here.
I checked the build, sigs et al on a couple of platforms and did not find anything major except one item. I will start with the show-stopper (IMO) and then the other smaller things. 1. I get compilation failure when I try to compile the latest DBCP release with this code. I think it may have something to do with POOL-269. Here is one example: [*ERROR*] /Users/psteitz/Downloads/commons-dbcp2-2.9.0-src/src/main/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java:[45,70] wrong number of type arguments; required 2 This should not happen in a dot release. 2. On MacOS 13.4.1, OpenJDK 20.0.1, I got the following test failure just one time and can't reproduce: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.apache.commons.pool2.impl.GenericKeyedObjectPool$ObjectDeque.getIdleObjects()" because the return value of "java.util.Map.get(Object)" is null at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.commons.pool2.impl.TestGenericKeyedObjectPool.lambda$testConcurrentBorrowAndClear$2(TestGenericKeyedObjectPool.java:1056) ... 71 more Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.commons.pool2.impl.GenericKeyedObjectPool$ObjectDeque.getIdleObjects()" because the return value of "java.util.Map.get(Object)" is null at org.apache.commons.pool2.impl.GenericKeyedObjectPool.addIdleObject(GenericKeyedObjectPool.java:307) at org.apache.commons.pool2.impl.GenericKeyedObjectPool.addObject(GenericKeyedObjectPool.java:332) at org.apache.commons.pool2.KeyedObjectPool.addObjects(KeyedObjectPool.java:136) at org.apache.commons.pool2.KeyedObjectPool.addObjects(KeyedObjectPool.java:113) at org.apache.commons.pool2.impl.TestGenericKeyedObjectPool.lambda$testConcurrentBorrowAndClear$0(TestGenericKeyedObjectPool.java:1036) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1623) This one is driving me crazy because the NPE should not be possible due to key registration guarding. I will keep digging on this. 3. I see this one on every run, both config above and Ubuntu 20.0.4 / OpenJDK 11.0.19 Exception in thread "Thread-1305" org.opentest4j.AssertionFailedError at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:34) at org.junit.jupiter.api.Assertions.fail(Assertions.java:116) at org.apache.commons.pool2.impl.TestGenericKeyedObjectPool.lambda$testClearUnblocksWaiters$3(TestGenericKeyedObjectPool.java:1237) at java.base/java.lang.Thread.run(Thread.java:1623) The test that causes it doesn't fail because it happens in a thread that the test spawns and the test does not wait for the threads it starts to finish. Digging into it, I realize this is my sloppiness as I committed this test case. I will make a PR to fix it. I don't think that it indicates a bug. 4. I forgot to add since tag on the new version of GKOP clear that adds reuseCapacity parm. Will fix in the same PR. 5. Small nit. There is a vestigal paragraph in the release notes template that I think should be dropped: 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. Phil On Sat, Jun 24, 2023 at 6:27 PM Gary Gregory <garydgreg...@gmail.com> wrote: > We have fixed quite a few bugs and added some enhancements since > Apache Commons Pool 2.11.1 was released, so I would like to release > Apache Commons Pool 2.12.0. > > Apache Commons Pool 2.12.0 RC1 is available for review here: > https://dist.apache.org/repos/dist/dev/commons/pool/2.12.0-RC1 > (svn revision 62626) > > The Git tag commons-pool-2.12.0-RC1 commit for this RC is > e5dae53e0ce1211b40680e7dccf601c3c3897378 which you can browse here: > > https://gitbox.apache.org/repos/asf?p=commons-pool.git;a=commit;h=e5dae53e0ce1211b40680e7dccf601c3c3897378 > You may checkout this tag using: > git clone https://gitbox.apache.org/repos/asf/commons-pool.git > --branch <https://gitbox.apache.org/repos/asf/commons-pool.git--branch> > commons-pool-2.12.0-RC1 commons-pool-2.12.0-RC1 > > Maven artifacts are here: > > https://repository.apache.org/content/repositories/orgapachecommons-1640/org/apache/commons/commons-pool2/2.12.0/ > > These are the artifacts and their hashes: > > #Release SHA-512s > #Sat Jun 24 21:12:18 EDT 2023 > > commons-pool2-2.12.0-bin.tar.gz=e16b3a81c98feae6f9855a9bd2f2226dae51558c6e7bb77ee626e58853420ccc59d0943a594bba27ab7147524eca823cac47484e304ebaf14bd724b96bbffc25 > > commons-pool2-2.12.0-bin.zip=29339f89a8efaa4ad3efbe656d610b8951be1a2a005ba7cb58ae356660331af9d473e8ada8bcdedd3d765c54d1dcfee8779ccb3902f0220de7e92e3039f95b8d > > commons-pool2-2.12.0-bom.json=adb3e197d360dc7f53ab116c8fa8b1699d60560fcf977cae613c4cb493168a130ca8041d4ca475e75386f281688819fa5f5111e4aa937b24390a6de8e779f507 > > commons-pool2-2.12.0-bom.xml=d964e9ec5ed51c10591093bdd0e174f8eb354a447f710e8c3749100fdbda7456e3922846a7190180e5044fe46e571cbc600aaea1b8f64a37c12c5deaa2f1662a > > commons-pool2-2.12.0-javadoc.jar=356891b25f2e0367b74a7c4070c26d3cec7a3e608b6e47205e5ffeface590c9717187cb1fa72ebb4c484adaac2c7634ff1944c88282ba9c6551ab5abb58c87f4 > > commons-pool2-2.12.0-sources.jar=6d955b437496d7af6f94844010a1df15efc04e2b9c15fadc1001777c54a60433570744605b0625a21adf53f03ce9e339809977384c562ad357a98370749c8ee6 > > commons-pool2-2.12.0-src.tar.gz=eed0575d8357349c908fe8539db2c8ef23234c306f373d203d3d2d9a4ee1ae51cb6bdb2f86163e2296ac90f67a27c7d8cfde239cdfc8ab4966c6239b63f5984e > > commons-pool2-2.12.0-src.zip=d8158fd14ee393a99dd0abcb55448b699182a50e0ea114cd3a2681799c9f5e58161f71a2420d0605d1ea39efb08c31be1f7a38531c169fd2c69cc604458ee184 > > commons-pool2-2.12.0-test-sources.jar=db4fabab1fae77e5dcf8af35397635738c6296ebc25065be9a73725d6b837179c3973ae3ea531aa40056459f011ff90e3c2ef16ad2fa77114dacaa5709e3bf57 > > commons-pool2-2.12.0-tests.jar=81af180ba6d2a5ce12064c9cc4eda4bc25d072fef55a3dc7ce48506571d40aceb6636c80202c31eff867eb8fd1971a44e0c2c2979019a1e32f43005d70cf2f5e > > org.apache.commons_commons-pool2-2.12.0.spdx.json=ed49a8ca7a776ede454f8765f1bd71b5d6a2da35b8bd46ebe930f663127fbd6f248c27059b417ca578665295113ca56a0f0e6486c92436b7b9af7984e3f111db > > I have tested this with: > > mvn -V -Duser.name=$my_apache_id > -Dcommons.release-plugin.version=$commons_release_plugin_version > -Prelease -Ptest-deploy -P jacoco -P japicmp clean package site deploy > > using: > > Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c) > Maven home: /usr/local/Cellar/maven/3.9.2/libexec > Java version: 1.8.0_372, vendor: Homebrew, runtime: > /usr/local/Cellar/openjdk@8 > /1.8.0+372/libexec/openjdk.jdk/Contents/Home/jre > Default locale: en_US, platform encoding: UTF-8 > OS name: "mac os x", version: "13.4.1", arch: "x86_64", family: "mac" > Darwin gdg-mac-mini.local 22.5.0 Darwin Kernel Version 22.5.0: Thu Jun > 8 22:22:22 PDT 2023; root:xnu-8796.121.3~7/RELEASE_X86_64 x86_64 > > Details of changes since 2.11.1 are in the release notes: > > https://dist.apache.org/repos/dist/dev/commons/pool/2.12.0-RC1/RELEASE-NOTES.txt > > https://dist.apache.org/repos/dist/dev/commons/pool/2.12.0-RC1/site/changes-report.html > > Site: > > https://dist.apache.org/repos/dist/dev/commons/pool/2.12.0-RC1/site/index.html > (note some *relative* links are broken and the 2.12.0 directories > are not yet created - these will be OK once the site is deployed.) > > JApiCmp Report (compared to 2.11.1): > > https://dist.apache.org/repos/dist/dev/commons/pool/2.12.0-RC1/site/japicmp.html > > RAT Report: > > https://dist.apache.org/repos/dist/dev/commons/pool/2.12.0-RC1/site/rat-report.html > > KEYS: > https://www.apache.org/dist/commons/KEYS > > Please review the release candidate and vote. > This vote will close no sooner than 72 hours from now. > > [ ] +1 Release these artifacts > [ ] +0 OK, but... > [ ] -0 OK, but really should fix... > [ ] -1 I oppose this release because... > > Thank you, > > Gary Gregory, > Release Manager (using key 86fdc7e2a11262cb) > > For following is intended as a helper and refresher for reviewers. > > Validating a release candidate > ============================== > > These guidelines are NOT complete. > > Requirements: Git, Java, Maven. > > You can validate a release from a release candidate (RC) tag as follows. > > 1) Clone and checkout the RC tag > > git clone https://gitbox.apache.org/repos/asf/commons-pool.git > --branch commons-pool-2.12.0-RC1 commons-pool-2.12.0-RC1 > cd commons-pool-2.12.0-RC1 > > 2) Check Apache licenses > > This step is not required if the site includes a RAT report page which > you then must check. > > mvn apache-rat:check > > 3) Check binary compatibility > > Older components still use Apache Clirr: > > This step is not required if the site includes a Clirr report page > which you then must check. > > mvn clirr:check > > Newer components use JApiCmp with the japicmp Maven Profile: > > This step is not required if the site includes a JApiCmp report page > which you then must check. > > mvn install -DskipTests -P japicmp japicmp:cmp > > 4) Build the package > > mvn -V clean package > > You can record the Maven and Java version produced by -V in your VOTE > reply. > To gather OS information from a command line: > Windows: ver > Linux: uname -a > > 5) Build the site for a single module project > > Note: Some plugins require the components to be installed instead of > packaged. > > mvn site > Check the site reports in: > - Windows: target\site\index.html > - Linux: target/site/index.html > > -the end- > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > >