Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8333796

Add missing serialization functionality to sun.reflect.ReflectionFactory

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 24
    • None
    • core-libs
    • None

      Issue JDK-8164908 added support for functionality required to continue to support IIOP and custom serializers in light of additional module-based restrictions on reflection. It was expected that these libraries would use `sun.misc.Unsafe` in order to access fields of serializable classes. However, with JEP 471, the methods necessary to do this are being removed.

      To allow these libraries to continue to function, it is proposed to add two methods to `sun.reflect.ReflectionFactory` which will allow serialization libraries to acquire a method handle to generated `readObject`/`writeObject` methods which set or get the fields of the serializable class using the serialization `GetField`/`PutField` mechanism. These generated methods should be used by serialization libraries to serialize and deserialize classes which do not have a `readObject`/`writeObject` method or which use `ObjectInputStream.defaultReadObject`/`ObjectOutputStream.defaultWriteObject` to supplement default serialization.

      It is also proposed to add methods which allow for the reading of serialization-specific private static final fields from classes which have them.

      With the addition of these methods, serialization libraries no longer need to rely on `Unsafe` for serialization/deserialization activities.

            dmlloyd David Lloyd
            dmlloyd David Lloyd
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: