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