On Thu, 8 Sep 2022 19:30:57 GMT, Valerie Peng <[email protected]> wrote:

>> src/java.base/share/classes/java/security/Security.java line 610:
>> 
>>> 608:             // return null if the selection criteria is empty; this is 
>>> to match
>>> 609:             // earlier behavior
>>> 610:             return null;
>> 
>> Is this true? In the original code when `filter` is empty, `keySet` is also 
>> empty and `allProviders` will be returned.
>
> Yes, if you look at the original impl (not my earlier changes), the result 
> set is populated inside the loop which iterate over the keys. So, for empty 
> key set, the result set is empty and null will end up being returned. It does 
> not match my expectation. However, I tried it against a clean workspace.

Yes, you're right.

>> src/java.base/share/classes/java/security/Security.java line 873:
>> 
>>> 871:         // whose value may be composite, i.e. multiple values 
>>> separated by "|"
>>> 872:         private boolean isCompositeValue() {
>>> 873:             return (attrName != null &&
>> 
>> `attrName` is never null when this method is called.
>
> Yes, but that's depending on the current calling pattern. Now that it's 
> inside Criteria class where attrName may be null (for Service.AlgName type of 
> criteria), it should be checked for completeness.

OK.

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

PR: https://git.openjdk.org/jdk/pull/10008

Reply via email to