public void sort() { synchronized (this.messages) { Collections.sort( this.messages, new Comparator<Message>() { @Override public int compare(Message left, Message right) { if (left.getTimeSent() < right.getTimeSent()) { return -1; } else if (left.getTimeSent() > right.getTimeSent()) { return 1; } else { return 0; } } }); for (Message message : this.messages) { message.untie(); } } }