private void checkPayloadContent(Packet packet) { byte[] payload = packet.toByteArray(); int foundPayloadSize = payload == null ? 0 : payload.length; if (foundPayloadSize <= 0) { return; } checkHeadTailMarkers(payload); if (!trackSequenceId) { return; } AtomicLong sequenceCounter = sequenceCounterMap.get(packet.getConn()); if (sequenceCounter == null) { AtomicLong newSequenceCounter = new AtomicLong(0); sequenceCounter = sequenceCounterMap.putIfAbsent(packet.getConn(), newSequenceCounter); if (sequenceCounter == null) { sequenceCounter = newSequenceCounter; } } long foundSequence = readLong(payload, 3); long expectedSequence = sequenceCounter.get() + 1; if (expectedSequence != foundSequence) { throw new IllegalArgumentException("Unexpected sequence id, expected: " + expectedSequence + "found: " + foundSequence); } sequenceCounter.set(expectedSequence); }
private void checkPayloadContent(Packet packet) { byte[] payload = packet.toByteArray(); int foundPayloadSize = payload == null ? 0 : payload.length; if (foundPayloadSize <= 0) { return; } checkHeadTailMarkers(payload); if (!trackSequenceId) { return; } AtomicLong sequenceCounter = sequenceCounterMap.get(packet.getConn()); if (sequenceCounter == null) { AtomicLong newSequenceCounter = new AtomicLong(0); sequenceCounter = sequenceCounterMap.putIfAbsent(packet.getConn(), newSequenceCounter); if (sequenceCounter == null) { sequenceCounter = newSequenceCounter; } } long foundSequence = readLong(payload, 3); long expectedSequence = sequenceCounter.get() + 1; if (expectedSequence != foundSequence) { throw new IllegalArgumentException("Unexpected sequence id, expected: " + expectedSequence + "found: " + foundSequence); } sequenceCounter.set(expectedSequence); }
private void checkPayloadContent(Packet packet) { byte[] payload = packet.toByteArray(); int foundPayloadSize = payload == null ? 0 : payload.length; if (foundPayloadSize <= 0) { return; } checkHeadTailMarkers(payload); if (!trackSequenceId) { return; } AtomicLong sequenceCounter = sequenceCounterMap.get(packet.getConn()); if (sequenceCounter == null) { AtomicLong newSequenceCounter = new AtomicLong(0); sequenceCounter = sequenceCounterMap.putIfAbsent(packet.getConn(), newSequenceCounter); if (sequenceCounter == null) { sequenceCounter = newSequenceCounter; } } long foundSequence = readLong(payload, 3); long expectedSequence = sequenceCounter.get() + 1; if (expectedSequence != foundSequence) { throw new IllegalArgumentException("Unexpected sequence id, expected: " + expectedSequence + "found: " + foundSequence); } sequenceCounter.set(expectedSequence); }
public static void main(String[] args) { byte[] bytes = new byte[50]; long sequenceId = Long.MAX_VALUE; addHeadTailMarkers(bytes); addSequenceId(bytes, sequenceId); writeLong(bytes, 3, sequenceId); writeLong(bytes, bytes.length - (8 + 3), sequenceId); LOGGER.info(toHexString(bytes)); checkHeadTailMarkers(bytes); } }
public static void main(String[] args) { byte[] bytes = new byte[50]; long sequenceId = Long.MAX_VALUE; addHeadTailMarkers(bytes); addSequenceId(bytes, sequenceId); writeLong(bytes, 3, sequenceId); writeLong(bytes, bytes.length - (8 + 3), sequenceId); LOGGER.info(toHexString(bytes)); checkHeadTailMarkers(bytes); } }
public static void main(String[] args) { byte[] bytes = new byte[50]; long sequenceId = Long.MAX_VALUE; addHeadTailMarkers(bytes); addSequenceId(bytes, sequenceId); writeLong(bytes, 3, sequenceId); writeLong(bytes, bytes.length - (8 + 3), sequenceId); LOGGER.info(toHexString(bytes)); checkHeadTailMarkers(bytes); } }