On Mon, 24 May 2021 17:24:22 GMT, Roger Riggs <rri...@openjdk.org> wrote:

>> JEP 415: Context-specific Deserialization Filters extends the 
>> deserialization filtering mechanisms with more flexible and customizable 
>> protections against malicious deserialization.  See JEP 415: 
>> https://openjdk.java.net/jeps/415.
>> The `java.io.ObjectInputFilter` and `java.io.ObjectInputStream` classes are 
>> extended with additional
>> configuration mechanisms and filter utilities.
>> 
>> javadoc for `ObjectInputFilter`, `ObjectInputFilter.Config`, and 
>> `ObjectInputStream`:
>>     
>> http://cr.openjdk.java.net/~rriggs/filter-factory/java.base/java/io/ObjectInputFilter.html
>
> Roger Riggs has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Review suggestions included;
>   Added @implSpec for default methods in OIF;
>   Added restriction that the filter factory cannot be set after an 
> ObjectInputStream has been created and applied the current filter factory

Changes requested by bchristi (Reviewer).

src/java.base/share/classes/java/io/ObjectInputFilter.java line 1222:

> 1220:             /**
> 1221:              * Apply the predicate to the class being deserialized, if 
> the class is non-null
> 1222:              * and if it returns {@code true}, return the requested 
> status. Otherwise, return UNDECIDED.

Isn't `ifFalseStatus` returned in the "otherwise" case, not (necessarily) 
`UNDECIDED` ?

src/java.base/share/classes/java/io/ObjectInputFilter.java line 1236:

> 1234:             public String toString() {
> 1235:                 return "predicate(" + predicate + ")";
> 1236:             }

Would it also be useful to also print `ifTrueStatus` and `ifFalseStatus` ?  Not 
sure, given this is an internal class...

src/java.base/share/classes/java/io/ObjectInputFilter.java line 1283:

> 1281:              * Returns REJECTED if either of the filters returns 
> REJECTED,
> 1282:              * and ALLOWED if either of the filters returns ALLOWED.
> 1283:              * Returns {@code UNDECIDED} if either filter returns 
> {@code UNDECIDED}.

The description of when `UNDECIDED` is returned should match `@return`.
Alternately, have minimal documentation here, and refer to the public merge() 
method, which this implements.

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

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

Reply via email to