Source:
<code>public void decode(final ActiveMQBuffer buffer) { persisted = true; name = buffer.readSimpleString().toString(); discoveryGroupName = BufferHelper.readNullableSimpleStringAsString(buffer); int nConnectors = buffer.readInt(); if (nConnectors > 0) { connectorNames = new ArrayList<>(nConnectors); for (int i = 0; i < nConnectors; i++) { SimpleString str = buffer.readSimpleString(); connectorNames.add(str.toString()); } } ha = buffer.readBoolean(); clientID = BufferHelper.readNullableSimpleStringAsString(buffer); clientFailureCheckPeriod = buffer.readLong(); connectionTTL = buffer.readLong(); callTimeout = buffer.readLong(); cacheLargeMessagesClient = buffer.readBoolean(); minLargeMessageSize = buffer.readInt(); consumerWindowSize = buffer.readInt(); consumerMaxRate = buffer.readInt(); confirmationWindowSize = buffer.readInt(); producerWindowSize = buffer.readInt(); producerMaxRate = buffer.readInt(); blockOnAcknowledge = buffer.readBoolean(); blockOnDurableSend = buffer.readBoolean(); blockOnNonDurableSend = buffer.readBoolean(); autoGroup = buffer.readBoolean(); preAcknowledge = buffer.readBoolean(); loadBalancingPolicyClassName = buffer.readSimpleString().toString(); transactionBatchSize = buffer.readInt(); dupsOKBatchSize = buffer.readInt(); initialWaitTimeout = buffer.readLong(); useGlobalPools = buffer.readBoolean(); scheduledThreadPoolMaxSize = buffer.readInt(); threadPoolMaxSize = buffer.readInt(); retryInterval = buffer.readLong(); retryIntervalMultiplier = buffer.readDouble(); maxRetryInterval = buffer.readLong(); reconnectAttempts = buffer.readInt(); failoverOnInitialConnection = buffer.readBoolean(); compressLargeMessage = buffer.readBoolean(); groupID = BufferHelper.readNullableSimpleStringAsString(buffer); factoryType = JMSFactoryType.valueOf(buffer.readInt()); protocolManagerFactoryStr = BufferHelper.readNullableSimpleStringAsString(buffer); deserializationBlackList = BufferHelper.readNullableSimpleStringAsString(buffer); deserializationWhiteList = BufferHelper.readNullableSimpleStringAsString(buffer); <START> enable1xPrefixes = buffer.readBoolean(); <END> }</code><technical_language>check buffer readable bytes reading, for compatibility if buffer is written a previous version</technical_language>

Target:
public void decode(final ActiveMQBuffer buffer) { persisted = true; name = buffer.readSimpleString().toString(); discoveryGroupName = BufferHelper.readNullableSimpleStringAsString(buffer); int nConnectors = buffer.readInt(); if (nConnectors > 0) { connectorNames = new ArrayList<>(nConnectors); for (int i = 0; i < nConnectors; i++) { SimpleString str = buffer.readSimpleString(); connectorNames.add(str.toString()); } } ha = buffer.readBoolean(); clientID = BufferHelper.readNullableSimpleStringAsString(buffer); clientFailureCheckPeriod = buffer.readLong(); connectionTTL = buffer.readLong(); callTimeout = buffer.readLong(); cacheLargeMessagesClient = buffer.readBoolean(); minLargeMessageSize = buffer.readInt(); consumerWindowSize = buffer.readInt(); consumerMaxRate = buffer.readInt(); confirmationWindowSize = buffer.readInt(); producerWindowSize = buffer.readInt(); producerMaxRate = buffer.readInt(); blockOnAcknowledge = buffer.readBoolean(); blockOnDurableSend = buffer.readBoolean(); blockOnNonDurableSend = buffer.readBoolean(); autoGroup = buffer.readBoolean(); preAcknowledge = buffer.readBoolean(); loadBalancingPolicyClassName = buffer.readSimpleString().toString(); transactionBatchSize = buffer.readInt(); dupsOKBatchSize = buffer.readInt(); initialWaitTimeout = buffer.readLong(); useGlobalPools = buffer.readBoolean(); scheduledThreadPoolMaxSize = buffer.readInt(); threadPoolMaxSize = buffer.readInt(); retryInterval = buffer.readLong(); retryIntervalMultiplier = buffer.readDouble(); maxRetryInterval = buffer.readLong(); reconnectAttempts = buffer.readInt(); failoverOnInitialConnection = buffer.readBoolean(); compressLargeMessage = buffer.readBoolean(); groupID = BufferHelper.readNullableSimpleStringAsString(buffer); factoryType = JMSFactoryType.valueOf(buffer.readInt()); protocolManagerFactoryStr = BufferHelper.readNullableSimpleStringAsString(buffer); deserializationBlackList = BufferHelper.readNullableSimpleStringAsString(buffer); deserializationWhiteList = BufferHelper.readNullableSimpleStringAsString(buffer); enable1xPrefixes = buffer.readableBytes() > 0 ? buffer.readBoolean() : null; }