protected void redo() throws CannotRedoException {
        if (insertionPoint >= maxInsertionPoint) {
            throw new CannotRedoException();
        }
        if (insertionPoint < maxInsertionPoint) {
            AbstractEdit edit = edits.get(insertionPoint);
            edit.redo();
            publishEdit(edit);
            insertionPoint = insertionPoint + 1;
        }
        while ((insertionPoint < maxInsertionPoint) && (!edits.get(insertionPoint).isSignificant())) {
            AbstractEdit edit = edits.get(insertionPoint);
            edit.redo();
            publishEdit(edit);
            insertionPoint = insertionPoint + 1;
        }
    }