Uploaded image for project: 'MINA'
  1. MINA
  2. DIRMINA-627

ByteBuffer.getObject() doesn't support Class objects for non-serializable classes

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.1.7
    • 2.0.3
    • Core
    • None

    Description

      Instances of java.lang.Class are serializable, whether or not the class they represent is serializable. However, org.apache.mina.common.ByteBuffer's optimizations prevent it from unserializing Class instances representing classes that are not serializable. For example, given

      public interface NotSerializable {}
      /.../
      ObjectOutputStream o = /.../;
      o.writeObject (NotSerializable.class);
      /.../
      ObjectInputStream i = /..bytes written by o, above../;
      Object read = i.readObject();

      The 'read' object will be NotSerializable.class.

      Trying the same thing with buffer.putObject (NotSerializable.class); buffer.flip(); buffer.getObject() throws a NullPointerException.

      Attachments

        1. IoBufferTest.java
          3 kB
          wangzhenghang
        2. AbstractIoBuffer.java
          1 kB
          wangzhenghang
        3. fix.patch
          3 kB
          Owen Jacobson
        4. tests.patch
          3 kB
          Owen Jacobson

        Activity

          People

            Unassigned Unassigned
            ojacobson Owen Jacobson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: