Source:
<code>protected Handshaker(boolean isClient, int initialMessageSeq, DTLSSession session, RecordLayer recordLayer, Connection connection, DtlsConnectorConfig config, int maxTransmissionUnit) { if (session == null) { throw new NullPointerException("DTLS Session must not be null"); } else if (recordLayer == null) { throw new NullPointerException("Record layer must not be null"); } else if (connection == null) { throw new NullPointerException("Connection must not be null"); } else if (config == null) { throw new NullPointerException("Dtls Connector Config must not be null"); } else if (initialMessageSeq < 0) { throw new IllegalArgumentException("Initial message sequence number must not be negative"); } this.isClient = isClient; this.sendMessageSequence = initialMessageSeq; this.nextReceiveMessageSequence = initialMessageSeq; this.session = session; this.recordLayer = recordLayer; this.connection = connection; this.connectionIdGenerator = config.getConnectionIdGenerator(); this.maxFragmentedHandshakeMessageLength = config.getMaxFragmentedHandshakeMessageLength(); this.maxDeferredProcessedOutgoingApplicationDataMessages = config.getMaxDeferredProcessedOutgoingApplicationDataMessages(); this.maxDeferredProcessedIncomingRecordsSize = config.getMaxDeferredProcessedIncomingRecordsSize(); this.sniEnabled = config.isSniEnabled(); this.useStateValidation = config.useHandshakeStateValidation(); this.privateKey = config.getPrivateKey(); this.publicKey = config.getPublicKey(); this.certificateChain = config.getCertificateChain(); this.certificateVerifier = config.getCertificateVerifier(); this.rpkStore = config.getRpkTrustStore(); this.pskStore = config.getPskStore(); this.session.setMaxTransmissionUnit(maxTransmissionUnit); this.applicationLevelInfoSupplier = config.getApplicationLevelInfoSupplier(); this.deferredApplicationData = new ArrayList<RawData>(maxDeferredProcessedOutgoingApplicationDataMessages); <START> this.deferredRecords = new ArrayList<Record>(maxDeferredProcessedOutgoingApplicationDataMessages); <END> this.inboundMessageBuffer = new InboundMessageBuffer(); addSessionListener(connection.getSessionListener()); }</code><technical_language>initialize this arraylist max size ? If wrong, default this 64KB (8192 * 2 * 4 bytes) for Handshaker. guess is of time order of magniture is arround 10</technical_language>

Target:
protected Handshaker(boolean isClient, int initialMessageSeq, DTLSSession session, RecordLayer recordLayer, Connection connection, DtlsConnectorConfig config, int maxTransmissionUnit) { if (session == null) { throw new NullPointerException("DTLS Session must not be null"); } else if (recordLayer == null) { throw new NullPointerException("Record layer must not be null"); } else if (connection == null) { throw new NullPointerException("Connection must not be null"); } else if (config == null) { throw new NullPointerException("Dtls Connector Config must not be null"); } else if (initialMessageSeq < 0) { throw new IllegalArgumentException("Initial message sequence number must not be negative"); } this.isClient = isClient; this.sendMessageSequence = initialMessageSeq; this.nextReceiveMessageSequence = initialMessageSeq; this.session = session; this.recordLayer = recordLayer; this.connection = connection; this.connectionIdGenerator = config.getConnectionIdGenerator(); this.maxFragmentedHandshakeMessageLength = config.getMaxFragmentedHandshakeMessageLength(); this.maxDeferredProcessedOutgoingApplicationDataMessages = config.getMaxDeferredProcessedOutgoingApplicationDataMessages(); this.maxDeferredProcessedIncomingRecordsSize = config.getMaxDeferredProcessedIncomingRecordsSize(); this.sniEnabled = config.isSniEnabled(); this.useStateValidation = config.useHandshakeStateValidation(); this.privateKey = config.getPrivateKey(); this.publicKey = config.getPublicKey(); this.certificateChain = config.getCertificateChain(); this.certificateVerifier = config.getCertificateVerifier(); this.rpkStore = config.getRpkTrustStore(); this.pskStore = config.getPskStore(); this.session.setMaxTransmissionUnit(maxTransmissionUnit); this.applicationLevelInfoSupplier = config.getApplicationLevelInfoSupplier(); this.inboundMessageBuffer = new InboundMessageBuffer(); addSessionListener(connection.getSessionListener()); }