CompactObjectInputStream Class — netty Architecture
Architecture documentation for the CompactObjectInputStream class in CompactObjectInputStream.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 4145a025_5a22_e350_2422_0d3f48f1a58b["CompactObjectInputStream"] 2a43e70c_7ee2_7ce5_22e6_2d21243962b4["CompactObjectInputStream.java"] 4145a025_5a22_e350_2422_0d3f48f1a58b -->|defined in| 2a43e70c_7ee2_7ce5_22e6_2d21243962b4 65ac07f7_0def_43f4_3997_9a40194167b3["CompactObjectInputStream()"] 4145a025_5a22_e350_2422_0d3f48f1a58b -->|method| 65ac07f7_0def_43f4_3997_9a40194167b3 8705f1a5_88e9_5a33_9bef_47c193f7a390["readStreamHeader()"] 4145a025_5a22_e350_2422_0d3f48f1a58b -->|method| 8705f1a5_88e9_5a33_9bef_47c193f7a390 3e0e7f78_8209_fcc3_357b_a2ea387a45cd["ObjectStreamClass()"] 4145a025_5a22_e350_2422_0d3f48f1a58b -->|method| 3e0e7f78_8209_fcc3_357b_a2ea387a45cd b3bc0e3d_e497_345e_6f43_c4523f07bab2["resolveClass()"] 4145a025_5a22_e350_2422_0d3f48f1a58b -->|method| b3bc0e3d_e497_345e_6f43_c4523f07bab2
Relationship Graph
Source Code
codec-base/src/main/java/io/netty/handler/codec/serialization/CompactObjectInputStream.java lines 25–75
class CompactObjectInputStream extends ObjectInputStream {
private final ClassResolver classResolver;
CompactObjectInputStream(InputStream in, ClassResolver classResolver) throws IOException {
super(in);
this.classResolver = classResolver;
}
@Override
protected void readStreamHeader() throws IOException {
int version = readByte() & 0xFF;
if (version != STREAM_VERSION) {
throw new StreamCorruptedException(
"Unsupported version: " + version);
}
}
@Override
protected ObjectStreamClass readClassDescriptor()
throws IOException, ClassNotFoundException {
int type = read();
if (type < 0) {
throw new EOFException();
}
switch (type) {
case CompactObjectOutputStream.TYPE_FAT_DESCRIPTOR:
return super.readClassDescriptor();
case CompactObjectOutputStream.TYPE_THIN_DESCRIPTOR:
String className = readUTF();
Class<?> clazz = classResolver.resolve(className);
return ObjectStreamClass.lookupAny(clazz);
default:
throw new StreamCorruptedException(
"Unexpected class descriptor type: " + type);
}
}
@Override
protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
Class<?> clazz;
try {
clazz = classResolver.resolve(desc.getName());
} catch (ClassNotFoundException ignored) {
clazz = super.resolveClass(desc);
}
return clazz;
}
}
Defined In
Source
Frequently Asked Questions
What is the CompactObjectInputStream class?
CompactObjectInputStream is a class in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/serialization/CompactObjectInputStream.java.
Where is CompactObjectInputStream defined?
CompactObjectInputStream is defined in codec-base/src/main/java/io/netty/handler/codec/serialization/CompactObjectInputStream.java at line 25.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free