On Mon, 6 Dec 2021 04:25:37 GMT, Jaikiran Pai <j...@openjdk.org> wrote:

>> The effects of invalid values of `jdk.serialFilter` and 
>> `jdk.serialFilterFactory` properties are 
>> incompletely specified. The behavior for invalid values of the properties is 
>> different and
>> use an unconventional exception type, `ExceptionInInitializerError` and 
>> leave the `OIF.Config` class
>> uninitialized. 
>> 
>> The exceptions in the `ObjectInputFilter.Config` class initialization caused 
>> by invalid values of the two properties, 
>> either by system properties supplied on the command line or security 
>> properties are logged.
>> The `Config` class marks either or both the filter and filter factory values 
>> as unusable
>> and remembers the exception message.
>> 
>> Subsequent calls to the methods that get or set the filter or filter factory 
>> or create 
>> an `ObjectInputStream` throw `java.lang.IllegalStateException` with the 
>> remembered exception message.
>> Constructing an `ObjectInputStream` calls both `Config.getSerialFilter` and 
>> `Config.getSerialFilterFactory`.
>> The nature of the invalid property is reported as an `IllegalStateException` 
>> on first use.
>> 
>> This PR supercedes https://github.com/openjdk/jdk/pull/6508 Document that 
>> setting an invalid property jdk.serialFilter disables deserialization
>
> src/java.base/share/classes/java/io/ObjectInputFilter.java line 526:
> 
>> 524:      * {@code jdk.serialFilter} is defined then it is used to configure 
>> the filter.
>> 525:      * The filter is created as if {@link #createFilter(String) 
>> createFilter} is called,
>> 526:      * if the filter string is invalid the initialization fails and 
>> subsequent attempts to
> 
> Hello Roger,
>> if the filter string is invalid the initialization fails
> 
> Should this instead be "if the filter string is invalid the initialization of 
> {@code Config} class fails ..."

Please ignore this above comment. Clearly, the initialization of `Config` class 
doesn't fail, but the initialization of the JVM wide serial filter fails. I 
still had the older semantics of `Config`  class in mind when I submitted that 
above comment.

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

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

Reply via email to