if (validationErrors == null) {
if (validationErrors == null || validationErrors.size() == 0) {
    public int doStartTag() throws JspException {        // TODO: Find a way to access the action resolver to ensure we're getting the right action name        HttpServletRequest request = (HttpServletRequest) getPageContext().getRequest();        String action = (String) request.getAttribute(ActionResolver.RESOLVED_ACTION);        if (getAction() != null) {            // The errors tag was supplied a action name, see if it is the one submitted in the req            if (getAction().equals(action)) {                this.display = true;            }        } else {            // See if the enclosing action tag (if any) is the one submitted            FormTag formTag = getParentTag(FormTag.class);            if (formTag != null) {                if (formTag.getAction().equals(action)) {                    this.display = true;                }            }            // Else if no name was set, and we're not in a action tag, we're global, so display            else {                this.display = true;            }        }        // If we think we're going to display, go off and find the set of errors to        // display and see if there are any        if (this.display) {            ValidationErrors validationErrors = getActionBean().getContext().getValidationErrors();            if (validationErrors == null) {                this.display = false;            }            else {                // Using a set ensures that duplicate messages get filtered out, which can                // happen during multi-row validation                this.allErrors = new TreeSet<ValidationError>(new ErrorComparator());                if (this.field != null) {                    // we're filtering for a specific field                    List<ValidationError> fieldErrors = validationErrors.get(this.field);                    if (fieldErrors != null) {                        this.allErrors.addAll(fieldErrors);                    }                    if (this.allErrors.size() == 0) {                        this.display = false;                        return SKIP_BODY;                    }                }                else {                    for (List<ValidationError> fieldErrors : validationErrors.values()) {                        if (fieldErrors != null) {                            this.allErrors.addAll(fieldErrors);                        }                    }                }                // Setup the objects needed for iteration                this.errorIterator = this.allErrors.iterator();                this.currentError = this.errorIterator.next(); // load up the first error                return EVAL_BODY_BUFFERED;            }        }        return SKIP_BODY;    }