public boolean isValidSequence(long connection, long sequenceCode) {
int sequenceNo = (int)sequenceCode&Integer.MAX_VALUE;
boolean result;
if (!LongHashTable.hasItem(sequenceCheck, connection)) {
if (!LongHashTable.setItem(sequenceCheck, connection, sequenceNo)) {
throw new RuntimeException("must grow");
};
result = 0==sequenceNo;
} else {
int lastSeq = LongHashTable.getItem(sequenceCheck, connection);
result = (lastSeq+1 == sequenceNo) || (lastSeq == sequenceNo) || (0 == sequenceNo);
if (!result) {
new Exception("con:"+connection+" last: "+lastSeq+" got "+sequenceNo).printStackTrace();
}
LongHashTable.replaceItem(sequenceCheck, connection, sequenceNo);
}
return result;
}