On Wed, 26 May 2021 06:35:46 GMT, Peter Levart <plev...@openjdk.org> wrote:

>> src/java.base/share/classes/java/io/ObjectInputStream.java line 1265:
>> 
>>> 1263:      * must return a non-null filter. It is not permitted to remove 
>>> filtering once established.
>>> 1264:      * See the {@linkplain ObjectInputFilter filter models} for 
>>> examples of composition and delegation.
>>> 1265:      *
>> 
>> Hi Roger,
>> When I first read this javadoc, I was a little confused and had to peek into 
>> the implementation. After that, I understood the above text, but without 
>> peeking and in-depth knowledge, I couldn't. The confusing part is the 
>> apparently conflicting claims made by 1st vs. 2nd paragraph. Both talk about 
>> setting the deserialization filter - the 1st just says "set the 
>> deserialization filter for the stream", and with the `setObjectInputFilter` 
>> method having a sole `filter` parameter, together these establish a simple 
>> picture - ah, just a setter method. But no, the 2nd paragraph talks about 
>> something entirely different which doesn't fit into the established picture. 
>> So would it be possible to rephrase that 1st paragraph somehow? Or what 
>> about starting with 2nd paragraph: "Set the deserialization filter for the 
>> stream to the filter returned by invoking ...." followed by 1st paragraph: 
>> "The filter can be set and only set once before reading any objects..."
>
> Also a better wording for the following paragraph could be: "This method can 
> only be called once and before reading any objects with this 
> ObjectInputStream"
> Talking about "The filter can only be set once" is a little confusing, since 
> the filter may actually already be set to JVM-wide filter when this methods 
> is called to replace it with per-OIS filter.

Rewrote and included your suggestions.

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

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

Reply via email to