Home / Class/ JdkByteBufChecksum Class — netty Architecture

JdkByteBufChecksum Class — netty Architecture

Architecture documentation for the JdkByteBufChecksum class in ByteBufChecksum.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  98e939d5_a330_7d91_1053_217eb15183a6["JdkByteBufChecksum"]
  2d513a28_c39a_3fc7_b9af_48d8fff5734f["ByteBufChecksum.java"]
  98e939d5_a330_7d91_1053_217eb15183a6 -->|defined in| 2d513a28_c39a_3fc7_b9af_48d8fff5734f
  9bc2bdea_1656_b126_d0ae_8d2313f1cfda["JdkByteBufChecksum()"]
  98e939d5_a330_7d91_1053_217eb15183a6 -->|method| 9bc2bdea_1656_b126_d0ae_8d2313f1cfda
  a8f953ed_ae04_2b8c_c040_79972888e6c9["update()"]
  98e939d5_a330_7d91_1053_217eb15183a6 -->|method| a8f953ed_ae04_2b8c_c040_79972888e6c9
  8aad9869_5fdc_a3e9_7d35_b3d58af9766a["ByteBuffer()"]
  98e939d5_a330_7d91_1053_217eb15183a6 -->|method| 8aad9869_5fdc_a3e9_7d35_b3d58af9766a
  0f39e390_5f6b_384e_d8bc_161a05d84316["getValue()"]
  98e939d5_a330_7d91_1053_217eb15183a6 -->|method| 0f39e390_5f6b_384e_d8bc_161a05d84316
  aa033eb5_7031_321d_b930_f88f8336db9b["reset()"]
  98e939d5_a330_7d91_1053_217eb15183a6 -->|method| aa033eb5_7031_321d_b930_f88f8336db9b

Relationship Graph

Source Code

codec-compression/src/main/java/io/netty/handler/codec/compression/ByteBufChecksum.java lines 62–119

    private static class JdkByteBufChecksum extends ByteBufChecksum {
        protected final Checksum checksum;
        private byte[] scratchBuffer;

        JdkByteBufChecksum(Checksum checksum) {
            this.checksum = checksum;
        }

        @Override
        public void update(int b) {
            checksum.update(b);
        }

        @Override
        public void update(ByteBuf b, int off, int len) {
            if (b.hasArray()) {
                update(b.array(), b.arrayOffset() + off, len);
            } else if (checksum instanceof CRC32) {
                ByteBuffer byteBuffer = getSafeBuffer(b, off, len);
                ((CRC32) checksum).update(byteBuffer);
            } else if (checksum instanceof Adler32) {
                ByteBuffer byteBuffer = getSafeBuffer(b, off, len);
                ((Adler32) checksum).update(byteBuffer);
            } else {
                super.update(b, off, len);
            }
        }

        private ByteBuffer getSafeBuffer(ByteBuf b, int off, int len) {
            ByteBuffer byteBuffer = CompressionUtil.safeNioBuffer(b, off, len);
            int javaVersion = PlatformDependent.javaVersion();
            if (javaVersion >= 22 && javaVersion < 25 && byteBuffer.isDirect()) {
                // Work-around for https://bugs.openjdk.org/browse/JDK-8357145
                if (scratchBuffer == null || scratchBuffer.length < len) {
                    scratchBuffer = new byte[len];
                }
                ByteBuffer copy = ByteBuffer.wrap(scratchBuffer, 0, len);
                copy.put(byteBuffer).flip();
                return copy;
            }
            return byteBuffer;
        }

        @Override
        public void update(byte[] b, int off, int len) {
            checksum.update(b, off, len);
        }

        @Override
        public long getValue() {
            return checksum.getValue();
        }

        @Override
        public void reset() {
            checksum.reset();
        }
    }

Frequently Asked Questions

What is the JdkByteBufChecksum class?
JdkByteBufChecksum is a class in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/ByteBufChecksum.java.
Where is JdkByteBufChecksum defined?
JdkByteBufChecksum is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/ByteBufChecksum.java at line 62.

Analyze Your Own Codebase

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

Try Supermodel Free