@SuppressWarnings("null") // prev cannot be null public static MessageOrder add(MessageOrder head, MessageOrder add) { if ( head == null ) return add; if ( add == null ) return head; if ( head == add ) return add; if ( head.getMsgNr() > add.getMsgNr() ) { add.next = head; return add; } MessageOrder iter = head; MessageOrder prev = null; while ( iter.getMsgNr() < add.getMsgNr() && (iter.next !=null ) ) { prev = iter; iter = iter.next; } if ( iter.getMsgNr() < add.getMsgNr() ) { //add after add.next = iter.next; iter.next = add; } else if (iter.getMsgNr() > add.getMsgNr()) { //add before prev.next = add; // prev cannot be null here, warning suppressed add.next = iter; } else { throw new ArithmeticException("Message added has the same counter, synchronization bug. Disable the order interceptor"); } return head; }
while ( (order!=null) && (order.getMsgNr() <= cnt.getCounter()) ) { if ( order.getMsgNr() == cnt.getCounter() ) cnt.inc(); else if ( order.getMsgNr() > cnt.getCounter() ) cnt.setCounter(order.getMsgNr()); super.messageReceived(order.getMessage()); order.setMessage(null); cnt.setCounter(tmp.getMsgNr()+1); if ( getForwardExpired() ) super.messageReceived(tmp.getMessage());
while ( (order!=null) && (order.getMsgNr() <= cnt.getCounter()) ) { if ( order.getMsgNr() == cnt.getCounter() ) cnt.inc(); else if ( order.getMsgNr() > cnt.getCounter() ) cnt.setCounter(order.getMsgNr()); super.messageReceived(order.getMessage()); order.setMessage(null); cnt.setCounter(tmp.getMsgNr()+1); if ( getForwardExpired() ) super.messageReceived(tmp.getMessage());
while ( (order!=null) && (order.getMsgNr() <= cnt.getCounter()) ) { if ( order.getMsgNr() == cnt.getCounter() ) cnt.inc(); else if ( order.getMsgNr() > cnt.getCounter() ) cnt.setCounter(order.getMsgNr()); super.messageReceived(order.getMessage()); order.setMessage(null); cnt.setCounter(tmp.getMsgNr()+1); if ( getForwardExpired() ) super.messageReceived(tmp.getMessage());
while ( (order!=null) && (order.getMsgNr() <= cnt.getCounter()) ) { if ( order.getMsgNr() == cnt.getCounter() ) cnt.inc(); else if ( order.getMsgNr() > cnt.getCounter() ) cnt.setCounter(order.getMsgNr()); super.messageReceived(order.getMessage()); order.setMessage(null); cnt.setCounter(tmp.getMsgNr()+1); if ( getForwardExpired() ) super.messageReceived(tmp.getMessage());
@SuppressWarnings("null") // prev cannot be null public static MessageOrder add(MessageOrder head, MessageOrder add) { if ( head == null ) return add; if ( add == null ) return head; if ( head == add ) return add; if ( head.getMsgNr() > add.getMsgNr() ) { add.next = head; return add; } MessageOrder iter = head; MessageOrder prev = null; while ( iter.getMsgNr() < add.getMsgNr() && (iter.next !=null ) ) { prev = iter; iter = iter.next; } if ( iter.getMsgNr() < add.getMsgNr() ) { //add after add.next = iter.next; iter.next = add; } else if (iter.getMsgNr() > add.getMsgNr()) { //add before prev.next = add; // prev cannot be null here, warning suppressed add.next = iter; } else { throw new ArithmeticException(sm.getString("orderInterceptor.messageAdded.sameCounter")); } return head; }