The ObjectInputStream.GetField method `get(String name, Object val)` should 
have been throwing
a ClassNotFoundException if the class was not found.  Instead the 
implementation was returning null.
A design error does not allow the `get(String name, Object val)`  method to 
throw CNFE as it should.
However, an exception must be thrown to prevent invalid data from being 
returned.
Wrapping the CNFE in IOException allows it to be thrown and the exception 
handled.
The call to `get(String name, Object val)`  is always from within a 
`readObject` method
so the deserialization logic can catch the IOException and unwrap it to handle 
the CNFE.

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

Commit messages:
 - 8273660: Propagate CNF exception in FieldValues.get via an IOException

Changes: https://git.openjdk.java.net/jdk/pull/6053/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6053&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8273660
  Stats: 112 lines in 2 files changed: 109 ins; 0 del; 3 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6053.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6053/head:pull/6053

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

Reply via email to