Home / Class/ ObjectDecoder Class — netty Architecture

ObjectDecoder Class — netty Architecture

Architecture documentation for the ObjectDecoder class in ObjectDecoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  3a885ee2_b9c7_c4f6_6ded_f923e5c1a93f["ObjectDecoder"]
  ed282aa0_469b_e3c3_cef2_b0178b25c988["ObjectDecoder.java"]
  3a885ee2_b9c7_c4f6_6ded_f923e5c1a93f -->|defined in| ed282aa0_469b_e3c3_cef2_b0178b25c988
  75a3e023_3acf_2f50_f2c3_e27c6c4060ed["ObjectDecoder()"]
  3a885ee2_b9c7_c4f6_6ded_f923e5c1a93f -->|method| 75a3e023_3acf_2f50_f2c3_e27c6c4060ed
  37771d8c_acec_36bc_9d76_fb7932063a1b["Object()"]
  3a885ee2_b9c7_c4f6_6ded_f923e5c1a93f -->|method| 37771d8c_acec_36bc_9d76_fb7932063a1b

Relationship Graph

Source Code

codec-base/src/main/java/io/netty/handler/codec/serialization/ObjectDecoder.java lines 46–92

@Deprecated
public class ObjectDecoder extends LengthFieldBasedFrameDecoder {

    private final ClassResolver classResolver;

    /**
     * Creates a new decoder whose maximum object size is {@code 1048576}
     * bytes.  If the size of the received object is greater than
     * {@code 1048576} bytes, a {@link StreamCorruptedException} will be
     * raised.
     *
     * @param classResolver  the {@link ClassResolver} to use for this decoder
     */
    public ObjectDecoder(ClassResolver classResolver) {
        this(1048576, classResolver);
    }

    /**
     * Creates a new decoder with the specified maximum object size.
     *
     * @param maxObjectSize  the maximum byte length of the serialized object.
     *                       if the length of the received object is greater
     *                       than this value, {@link StreamCorruptedException}
     *                       will be raised.
     * @param classResolver    the {@link ClassResolver} which will load the class
     *                       of the serialized object
     */
    public ObjectDecoder(int maxObjectSize, ClassResolver classResolver) {
        super(maxObjectSize, 0, 4, 0, 4);
        this.classResolver = classResolver;
    }

    @Override
    protected Object decode(ChannelHandlerContext ctx, ByteBuf in) throws Exception {
        ByteBuf frame = (ByteBuf) super.decode(ctx, in);
        if (frame == null) {
            return null;
        }

        ObjectInputStream ois = new CompactObjectInputStream(new ByteBufInputStream(frame, true), classResolver);
        try {
            return ois.readObject();
        } finally {
            ois.close();
        }
    }
}

Frequently Asked Questions

What is the ObjectDecoder class?
ObjectDecoder is a class in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/serialization/ObjectDecoder.java.
Where is ObjectDecoder defined?
ObjectDecoder is defined in codec-base/src/main/java/io/netty/handler/codec/serialization/ObjectDecoder.java at line 46.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free