[VOTE] Release Apache Commons Lang 3.16.0 based on RC1

2024-08-01 Thread Gary Gregory
We have fixed a few bugs and added enhancements since Apache Commons
Lang 3.15.0 was released, so I would like to release Apache Commons
Lang 3.16.0.

Apache Commons Lang 3.16.0 RC1 is available for review here:
https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1
(svn revision 70651)

The Git tag commons-lang-3.16.0-RC1 commit for this RC is
6a2a10d5343cfe37c1d9fa42ac5edda7cab5 which you can browse here:

https://gitbox.apache.org/repos/asf?p=commons-lang.git;a=commit;h=6a2a10d5343cfe37c1d9fa42ac5edda7cab5
You may checkout this tag using:
git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-lang-3.16.0-RC1 commons-lang-3.16.0-RC1

Maven artifacts are here:

https://repository.apache.org/content/repositories/orgapachecommons-1763/org/apache/commons/commons-lang3/3.16.0/

These are the artifacts and their hashes:

#Release SHA-512s
#Thu Aug 01 12:24:25 UTC 2024
commons-lang3-3.16.0-bin.tar.gz=b028d890edf7e0538461dc325ca7767ae3dd292654ccb2d12560c39ee84e03b9b4304ac49b59a710dbf2dcb21ee605b6737508fc115ca2c92b8320500ab7fac8
commons-lang3-3.16.0-bin.zip=c10231ed795bd1747a323805b4cbf294e8eb9176404815d4ac8e65d8792141feed33393adbdbd9e732c9802de3934bad72a19fd69f80976460f52660fe21
commons-lang3-3.16.0-bom.json=322bbac48672ac1fe0fe7e6a2cc91e294dd2c09a4e48122cbb9ce2fbe94964dae0c123316d928b5b9d17397028fc500a4f01ce151ea083002b26fc423177b262
commons-lang3-3.16.0-bom.xml=3ae1b75ea4e3242188c68c001a0f869a7bfdb0ba0a031c619f586471cd2c2020eb3639dbe65295f34956b97302bfe2c249b95af9f1c4c1ab5fd8fcd342745187
commons-lang3-3.16.0-javadoc.jar=5b5301e46b70a23c4fd6b957f86321232bbfe354b9334be0423f497d5714dfb12f4ee1be6b4a8d232c01c6ed4bfeb052494127ce9de311b9b52cebea5c908ec8
commons-lang3-3.16.0-sources.jar=b3c71e990f4aeaaba099d8d7e50d44d142641b6f6f594476c873b5132062bc6b450dcd3a5a8fa42dde2813f9f9e7d6b72d5d49c3b04e2654f4b65981ffa696c6
commons-lang3-3.16.0-src.tar.gz=f9b36642d6b31b94cd6f32fcdf9364910ccea06dd331f3aa4e474a42d496b9d9f1fb1375f92e563125ecb0dce71d5cccbc4c9965edf7ab8136df272bc03d126c
commons-lang3-3.16.0-src.zip=9be57e0814e8e0b59b759ab0ddc538d4a7bfcccfb5fe2bf9c817b68df8b85319c55b76549f5c92b41da383f29442c03e1a6bcd8ccd2f3cf8129d43938ffca363
commons-lang3-3.16.0-test-sources.jar=051952f32fd7d51dba5aa3be67bc997d6ca1f316f780af70e807ac43419cb68d700890ab4e474904deb5b136ca683a8aa91bba5f108d7de1a0363ceccea10f4b
commons-lang3-3.16.0-tests.jar=4b0147a3a8d0214bf798eb3e52499be9d02f0cb2639d93877217d4b1a76cc394a887213b2043eea3ceeb26659b1298c28c93605f43d8039f10adf9fbfa8d2c49
org.apache.commons_commons-lang3-3.16.0.spdx.json=ff9c6d85b84fa97173574a4484f9cb8ff3a8b1e0d2ce49bc303b633bfc03b8c2112454e02c88268042b46a2f81ce48030d323aa42bd8f8da12cdcb88082c9ed4

I have tested this with 'mvn' and 'mvn -e -V -Prelease -Ptest-deploy
-P jacoco -P japicmp clean package site deploy' using:

openjdk version "21.0.4" 2024-07-16
OpenJDK Runtime Environment Homebrew (build 21.0.4)
OpenJDK 64-Bit Server VM Homebrew (build 21.0.4, mixed mode, sharing)

Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
Maven home: /usr/local/Cellar/maven/3.9.8/libexec
Java version: 21.0.4, vendor: Homebrew, runtime:
/usr/local/Cellar/openjdk@21/21.0.4/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.5", arch: "x86_64", family: "mac"

Darwin  23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:09:52
PDT 2024; root:xnu-10063.121.3~5/RELEASE_X86_64 x86_64

Details of changes since 3.15.0 are in the release notes:

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/RELEASE-NOTES.txt

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/changes-report.html

Site:

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/index.html
(note some *relative* links are broken and the 3.16.0 directories
are not yet created - these will be OK once the site is deployed.)

JApiCmp Report (compared to 3.15.0):

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/japicmp.html

RAT Report:

https://dist.apache.org/repos/dist/dev/commons/lang/3.16.0-RC1/site/rat-report.html

KEYS:
  https://downloads.apache.org/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)

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

1a) Clone and checkout the RC tag

git clone https://gitbox.apache.org/repos/asf/commons-lang.git
--branch commons-lang-3.16.0-RC1 commons-lang-3.16.0-RC1
cd commons-lang-3.16.0-RC1

1b) Download a

RE: [EMAIL] Serious network crash bug for commons email 2 library

2024-08-01 Thread Adrian Mikula
Hi Gary,

Sorry, for security reasons we can't share the full stack trace.  But I did 
find some more details we recorded while debugging this:

By debugging, we worked out that the problem manifests when we get to the Java 
code that builds and sends the email, but before any email is actually sent 
out.  It seems to occur around the time when the Tomee9 classloaders are trying 
to load a bunch of jakarta.mail classes and failing to find them. We also 
worked out that the org.apache.commons.email2 library calls jakarta.mail, which 
in turn calls the apache.geronimo library.  We also found that after the 
problem manifests, there are a couple of extra RMI TCP threads created which 
have a HTTP connection and have some kind of resource lock.

Regards,
Adrian

-Original Message-
From: Gary Gregory  
Sent: Friday, July 26, 2024 7:41 PM
To: Commons Developers List 
Subject: Re: [EMAIL] Serious network crash bug for commons email 2 library

What is the stack trace? That's a critical element you left out. It could just 
be a class path entry ordering issue.

Gary

On Fri, Jul 26, 2024, 7:39 AM Elliotte Rusty Harold 
wrote:

> Interesting. Thanks,
>
> Since commons-mail is pure Java, there's no way this can be completely 
> caused by bugs in commons-mail. though it sounds like some detail in 
> commons-mail is tickling other bugs elsewhere in the chain. My guess 
> is the network driver is at fault since that's what crashes and it 
> only happens in one version of the driver, but it could be the JDK, 
> the OS, or all three.
>
>
> On Fri, Jul 26, 2024 at 4:52 AM Adrian Mikula 
>  wrote:
> >
> > Hi everyone,
> >
> > I am a senior software engineer working on a TomEE project and as 
> > part
> of our recent upgrade to Jakarta 10 and Java 17, we also upgraded the 
> Apache Commons email library to version 2 which you just released.
> >
> > We encountered a very critical bug which only occurs with certain
> hardware and drivers, but it has very serious impacts on the host OS 
> and would be catastrophic if it were to happen on production systems.  
> I suggest you look into this as a matter of urgency because I would 
> not want anyone else to encounter this bug as it is very bad, but also 
> very obscure and could easily be missed during testing.
> >
> >
> > PROBLEM DESCRIPTION:
> > On certain physical hardware, with a specific OS network driver
> installed, if the Apache commons email2 library is used and an email 
> is sent, the email fails to send, and the OS network driver crashes 
> and the computer loses all network access.  The network access can 
> only be restored by restarting the computer, sometimes multiple times.
> >
> >
> > HARDWARE & OS:
> > Computer: Optiplex 7000
> > Windows 11
> > Ethernet driver: Intel 12.19.2.45
> >
> > SOFTWARE:
> > Java 17
> > Jakarta 10
> > TomEE 9.1.2
> >
> > These dependencies caused the issue:
> > commons-mail = { module = 
> > "org.apache.commons:commons-email2-jakarta",
> version = "2.0.0-M1" }
> > commons-mail-core = { module = 
> > "org.apache.commons:commons-email2-core",
> version = "2.0.0-M1" }
> >
> > We tried both the snapshot version from a few months ago, and the 
> > final
> release version from a few weeks ago.
> > Snapshot repo:
> https://repository.apache.org/content/repositories/snapshots/
> > Release repo:
> https://mvnrepository.com/artifact/org.apache.commons/commons-email2-j
> akarta/2.0.0-M1
> >
> > In the Java code:
> > import org.apache.commons.mail2.core.EmailException;
> > import org.apache.commons.mail2.jakarta.HtmlEmail;
> >
> >
> > STEPS TO REPRODUCE:
> >
> >   1.  Make sure you are testing on a computer with the same physical
> hardware/network card
> >   2.  Install the exact same version of the Intel ethernet driver. 
> > This
> issue does not occur for older/newer versions of the Intel driver
> >   3.  Run TomEE9 with the apache-commons-email2 library in the libs
> folder of a WAR deployment.
> >   4.  Send an email.
> >   5.  The email will never get sent across the network.
> >   6.  The computer will lose all network access.
> >   7.  Network access will only be restored after restarting the computer.
> >
> > DEBUG NOTES:
> >
> > While debugging the Java stack trace, we found that if the
> commons-email2 libraries are used, somehow one of the Java classes in 
> geronimo-mail is called which is part of the TomEE/libs and this 
> crashes the computer network. So it might be an issue with 
> commons-email2 communicating with certain 3rd-party libraries in 
> combination with certain hardware/drivers.
> >
> >
> > STEPS TO FIX:
> >
> > If we add an excludes for the Geronimo library, and swap
> apache-commons-email with a different email implementation library, it 
> seems fine.
> >
> >
> >
> > Please also note if I update my network driver to the latest Intel
> version, 2.0.0-M1 doesn't crash my network. It also doesn't crash with 
> older driver versions, only version 12.19.2.45.  This is not an issue 
> for Linux systems.
> >
> > Plea