RFR: 8280642: IllegalAccessError thrown by ObjectInputStream.resolveProxyClass is not handled [v2]

Roger Riggs rriggs at openjdk.java.net
Mon Jan 31 20:01:39 UTC 2022


> 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


More information about the core-libs-dev mailing list