> 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.
Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Review feedback recommends using InvalidClassException ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/7274/files - new: https://git.openjdk.java.net/jdk/pull/7274/files/7c8ba46a..23240feb Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7274&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7274&range=00-01 Stats: 9 lines in 2 files changed: 1 ins; 1 del; 7 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