System.err.println("undoing " + attempted.toString());
        private boolean undoMoves() {            int n = 0;            MoveStatus ms;            for (int i = rejectedMoves.size() - 1; i >= 0; i--) {                // attempt to undo moves starting with the last one                RejectedMove rm = (RejectedMove)rejectedMoves.get(i);                // our attempt to undo may fail due to a                // pre-committed move which is yet to be                // rejected                Move attempted = rm.getAttemptedMove();		ms = attempted.tryUndoMove(world, attempted.getPrincipal());                if (ms == MoveStatus.MOVE_OK) {                    System.err.println("undoing " + attempted.toString());		    attempted.undoMove(world, attempted.getPrincipal());                    rejectedMoves.remove(i);                    forwardMove(new UndoneMove(attempted), ms);                    n++;                }            }            if (n > 0) {                modelRoot.getUserMessageLogger().println("Undid " + n +                    " moves rejected by " + "server!");            }            return (n > 0);        }