During deserialization of a serialized data stream that contains a proxy descriptor with non-public interfaces `java.io.ObjectInputStream` checks that the interfaces can be loaded from a single classloader in `ObjectInputStream.resolveProxyClass`. If the interfaces cannot be loaded from a single classloader, an `IllegalAccessError` is thrown. When `ObjectInputStream.readObject` encounters this case, it reflects an incompatibility between the classloaders of the source of the serialized stream and the classloader being used for deserialization. When a proxy object cannot be created from the interfaces, `ObjectInputStream.readObject` should catch the `InvalidAccessError` and throw `InvalidObjectException` with the `InvalidAccessError` as the cause. This allows the application to handle the exception consistently with other errors during deserialization.
------------- Commit messages: - 8280642: IllegalAccessError thrown by ObjectInputStream.resolveProxyClass is not handled Changes: https://git.openjdk.java.net/jdk/pull/7274/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7274&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8280642 Stats: 13 lines in 2 files changed: 5 ins; 0 del; 8 mod Patch: https://git.openjdk.java.net/jdk/pull/7274.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/7274/head:pull/7274 PR: https://git.openjdk.java.net/jdk/pull/7274