Hi Phil,

YW and thank you for the review.

Yes, you are right that this is about POOL-269. While binary compatibility
is preserved 100%, source compatibility is not. This is one of those rare
cases where you can't make an omelette without breaking some eggs ;-) Since
binary compatibility is preserved, I don't think this is worth going to a
new major release.

I have POOL projects that will benefit (greatly IMO) from cleaner exception
handling and avoid having to throw/propagate Exception or catch/rethrow
Exception as a domain Exception, and will now instead be able to use domain
specific exception for resources being pooled from the get go.

I'll obviously adjust DBCP for this as soon as possible (IOW, post-release).

For the other items, I will try and reproduce. My tests builds were ok on
Windows 10 and macOS latest with Java 8. Maybe by hardware is too slow or
too fast compared to yours, hard to say.

Gary

On Mon, Jun 26, 2023, 16:53 Phil Steitz <phil.ste...@gmail.com> wrote:

> 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
> >
> >
>

Reply via email to