On Fri, 13 Dec 2024 05:14:07 GMT, Xue-Lei Andrew Fan <xue...@openjdk.org> wrote:

> It's only the combination of a Provider that overrides getService/getServices 
> + does not call putService/put + overrides newInstance without calling its 
> parent + uses a non-Java SE service type that would be unfiltered.

FYI.  I found [a 
case](https://www.bouncycastle.org/download/bouncy-castle-java-fips/) that:
1. Override getService/getServices, has its own logic to use put properties.
2. Use extended Provider.Service, but not Provider.Service directly.
3. call put() and get() internally. But because of  `#1` and `#2`, the provider 
filter theory may not work, please verify.
4. overrides newInstance without calling its parent.
5. uses non-Java SE service types

This is a popular provider (IIRC 17% marketing share per a report).  I think 
you should have evaluated it and confirmed that the theory works.  Otherwise, 
please make sure the compatibility issues is limited and the theory works for 
it.  Thank you!

-------------

PR Comment: https://git.openjdk.org/jdk/pull/15539#issuecomment-2543514140

Reply via email to