On Fri, 21 May 2021 15:54:50 GMT, Chris Hegarty <che...@openjdk.org> wrote:

>> Roger Riggs has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Simplify factory interface to BinaryOperator<ObjectInputFilter> and 
>> cleanup the example
>
> src/java.base/share/classes/java/io/ObjectInputFilter.java line 365:
> 
>> 363:      * A utility class to set and get the JVM-wide deserialization 
>> filter factory,
>> 364:      * the static JVM-wide filter, or to create a filter from a pattern 
>> string.
>> 365:      * If a JVM-wide filter factory or static JVM-wide filter is set, 
>> it will determine the filter
> 
> This concerns me, "A JVM-wide filter factory". I was going to suggest that it 
> should be "The ..", but then realised that there can only ever be one present 
> at a time, but in the lifetime of a JVM there can be two (since 
> getSerialFilterFactory if invoked before setSerialFilterFactory will 
> subsequently return a different JVM-wide factory).   Is this intentional? It 
> would great if this could be "The ..", so that setXXX can only be invoked 
> successfully if getXXX has not been.   This may seen somewhat insignificant, 
> but the fact that the JVM-wide factory can change make the model harder 
> understand.

It is reasonable to require that the factory be set before any OIS is 
constructed.
Similar to the restriction that the filter on a stream cannot be changed after 
the first call to readObject.
So an IllegalStateException added to Config.setSerialFilterFactory.

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

PR: https://git.openjdk.java.net/jdk/pull/3996

Reply via email to