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.