Example usage for org.apache.wicket.validation ValidationError setMessage

List of usage examples for org.apache.wicket.validation ValidationError setMessage

Introduction

In this page you can find the example usage for org.apache.wicket.validation ValidationError setMessage.

Prototype

public final ValidationError setMessage(String message) 

Source Link

Document

Sets message that will be used when no message could be located via message keys.

Usage

From source file:ar.edu.udc.cirtock.view.intranet.negocio.FormularioInsumo.java

License:Apache License

public FormularioInsumo(final PageParameters parameters) {

    super(parameters);

    add(new FeedbackPanel("feedbackErrors", new ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR)));
    formulario = new Form("formulario_insumo");

    nombre = new RequiredTextField<String>("nombre", new Model());

    nombre.add(new IValidator<String>() {
        @Override//www.  j ava2  s . c o m
        public void validate(IValidatable<String> validatable) {
            String nombre = validatable.getValue().trim().toUpperCase();
            if (!nombre.matches("^[\\w\\s]{3,20}$")) {
                ValidationError error = new ValidationError();
                error.setMessage("El campo 'nombre' no es valido");
                validatable.error(error);
            }
        }

    });
    formulario.add(nombre);

    descripcion = new RequiredTextField<String>("descripcion", new Model());

    descripcion.add(new IValidator<String>() {
        @Override
        public void validate(IValidatable<String> validatable) {
            String descripcion = validatable.getValue().trim().toUpperCase();
            if (!descripcion.matches("^[A-Za-z  ]{3,50}$")) {
                ValidationError error = new ValidationError();
                error.setMessage("El campo 'descripcion' no es valido");
                validatable.error(error);
            }
        }

    });
    formulario.add(descripcion);

    cantidad = new NumberTextField<Integer>("cantidad", new Model());
    cantidad.setType(Integer.class);
    cantidad.add(new IValidator<Integer>() {
        @Override
        public void validate(IValidatable<Integer> validatable) {
            Integer cantidad = validatable.getValue();
            if (cantidad < 0) {
                ValidationError error = new ValidationError();
                error.setMessage("El campo 'cantidad' no es valido");
                validatable.error(error);
            }
        }
    });

    formulario.add(cantidad);

    formulario.add(new Button("enviar") {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public void onSubmit() {
            String desc = (String) descripcion.getModelObject();
            String nomb = (String) nombre.getModelObject();
            Integer cant = cantidad.getModelObject();
            Connection conn = null;
            try {

                conn = CirtockConnection.getConection("cirtock", "cirtock", "cirtock");
                Insumo ins = new Insumo();
                ins.setDescripcion(desc);
                ins.setNombre(nomb);
                ins.setCantidad(cant);
                ins.insert("", conn);

            } catch (CirtockException e) {
                System.out.println("Error al acceder a la base de datos");
            } finally {
                try {
                    conn.close();
                } catch (SQLException e) {
                    ;
                }
            }
            setResponsePage(InsumoPage.class);
        };
    });

    add(formulario);
}

From source file:cz.zcu.kiv.eegdatabase.wui.components.form.input.UniqueEntityValidator.java

License:Apache License

private void error(IValidatable<T> validatable, String message) {
    ValidationError error = new ValidationError();
    error.setMessage(message);
    validatable.error(error);/*w ww .jav  a 2  s.  c o m*/
}

From source file:dk.teachus.frontend.components.person.PersonPanel.java

License:Apache License

public PersonPanel(String id, final PersonModel<? extends Person> personModel) {
    super(id, personModel);

    if (allowUserEditing(TeachUsSession.get().getPerson(), personModel.getObject()) == false) {
        throw new RestartResponseAtInterceptPageException(Application.get().getHomePage());
    }/*from   w  w w . ja v a 2s  .co  m*/

    FormPanel formPanel = new FormPanel("form"); //$NON-NLS-1$
    add(formPanel);

    // Name
    StringTextFieldElement nameField = new StringTextFieldElement(
            TeachUsSession.get().getString("General.name"), new PropertyModel<String>(personModel, "name"), //$NON-NLS-1$//$NON-NLS-2$
            true, 32);
    nameField.add(StringValidator.lengthBetween(2, 100));
    formPanel.addElement(nameField);

    // Email
    StringTextFieldElement emailField = new StringTextFieldElement(
            TeachUsSession.get().getString("General.email"), new PropertyModel<String>(personModel, "email"), //$NON-NLS-1$//$NON-NLS-2$
            true, 50);
    emailField.add(EmailAddressValidator.getInstance());
    formPanel.addElement(emailField);

    // Phone number
    formPanel.addElement(new IntegerFieldElement(TeachUsSession.get().getString("General.phoneNumber"), //$NON-NLS-1$
            new PropertyModel<Integer>(personModel, "phoneNumber"), 10)); //$NON-NLS-1$

    // Username
    if (isUsernameEnabled()) {
        StringTextFieldElement usernameField = new StringTextFieldElement(
                TeachUsSession.get().getString("General.username"), //$NON-NLS-1$
                new PropertyModel<String>(personModel, "username"), true); //$NON-NLS-1$
        usernameField.add(StringValidator.lengthBetween(3, 50));

        // Validate the username for correct content
        usernameField.add(new PatternValidator("^[a-zA-Z0-9-_]+$") { //$NON-NLS-1$
            private static final long serialVersionUID = 1L;

            @Override
            public void error(IValidatable<String> validatable) {
                ValidationError validationError = new ValidationError();
                validationError.setMessage(TeachUsSession.get().getString("PersonPanel.usernameCharacters"));
                validatable.error(validationError); //$NON-NLS-1$
            }
        });

        // validate the username checking for dublicates
        usernameField.add(new IValidator<String>() {
            private static final long serialVersionUID = 1L;

            public void validate(IValidatable<String> validatable) {
                PersonDAO personDAO = TeachUsApplication.get().getPersonDAO();
                String username = validatable.getValue();

                Person existingPerson = personDAO.usernameExists(username);

                if (existingPerson != null
                        && existingPerson.getId().equals(personModel.getPersonId()) == false) {
                    String localeString = TeachUsSession.get().getString("PersonPanel.userAlreadyExists"); //$NON-NLS-1$
                    localeString = localeString.replace("${username}", username); //$NON-NLS-1$
                    ValidationError validationError = new ValidationError();
                    validationError.setMessage(localeString);
                    validatable.error(validationError);
                }
            }
        });
        formPanel.addElement(usernameField);
    } else {
        formPanel.addElement(new ReadOnlyElement(TeachUsSession.get().getString("General.username"), //$NON-NLS-1$
                new PropertyModel<Object>(personModel, "username"))); //$NON-NLS-1$
    }

    // Password 1
    if (isPasswordVisible()) {
        final PasswordFieldElement password1Field = new PasswordFieldElement(
                TeachUsSession.get().getString("General.password"), //$NON-NLS-1$
                new PropertyModel<String>(this, "password1"), personModel.getPersonId() == null); //$NON-NLS-1$
        password1Field.add(StringValidator.lengthBetween(4, 32));
        formPanel.addElement(password1Field);

        // Password 2
        final PasswordFieldElement password2Field = new PasswordFieldElement(
                TeachUsSession.get().getString("PersonPanel.repeatPassword"), //$NON-NLS-1$
                new PropertyModel<String>(this, "password2")); //$NON-NLS-1$
        formPanel.addElement(password2Field);

        // Password validator
        formPanel.addValidator(new FormValidator() {
            private static final long serialVersionUID = 1L;

            public IFormValidator getFormValidator() {
                return new EqualInputValidator(password1Field.getFormComponent(),
                        password2Field.getFormComponent());
            }
        });
    }

    // Locale
    if (isLocaleVisible()) {
        List<Locale> availableLocales = TeachUsApplication.get().getAvailableLocales();
        formPanel.addElement(new DropDownElement<Locale>(TeachUsSession.get().getString("General.locale"), //$NON-NLS-1$
                new PropertyModel<Locale>(personModel, "locale"), availableLocales, //$NON-NLS-1$
                new LocaleChoiceRenderer()));
    }

    if (isCurrencyVisible()) {
        StringTextFieldElement currencyField = new StringTextFieldElement(
                TeachUsSession.get().getString("General.currency"), //$NON-NLS-1$
                new PropertyModel<String>(personModel, "currency"), 4); //$NON-NLS-1$
        currencyField.add(StringValidator.lengthBetween(0, 10));
        formPanel.addElement(currencyField); //$NON-NLS-1$ //$NON-NLS-2$
    }

    // Theme
    if (isThemeVisible()) {
        List<Theme> themes = Arrays.asList(Theme.values());
        formPanel.addElement(new DropDownElement<Theme>(TeachUsSession.get().getString("General.theme"), //$NON-NLS-1$
                new PropertyModel<Theme>(personModel, "theme"), themes, new ThemeChoiceRenderer())); //$NON-NLS-1$
    }

    // Teacher
    if (isTeacherVisible()) {
        formPanel.addElement(new ReadOnlyElement(TeachUsSession.get().getString("General.teacher"), //$NON-NLS-1$
                new PropertyModel<Object>(personModel, "teacher.name"))); //$NON-NLS-1$
    }

    // iCalendar URL
    formPanel.addElement(
            new ReadOnlyElement(TeachUsSession.get().getString("Ical.label"), new IcalUrlModel(personModel)));

    // Additional elements
    appendElements(formPanel);

    // Notes
    if (isNotesVisible()) {
        formPanel.addElement(new TextAreaElement("Notes", new PropertyModel<String>(personModel, "notes")));
    }

    // Buttons
    formPanel.addElement(new ButtonPanelElement() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onCancel() {
            getRequestCycle().setResponsePage(getPersonsPageClass());
        }

        @Override
        protected void onSave(AjaxRequestTarget target) {
            if (Strings.isEmpty(password1) == false) {
                personModel.setPassword(password1);
            }

            personModel.save();

            PersonPanel.this.onSave(personModel.getObject());

            getRequestCycle().setResponsePage(getPersonsPageClass());
        }
    });
}

From source file:dk.teachus.frontend.pages.periods.PeriodPage.java

License:Apache License

public PeriodPage(final Period period) {
    super(UserLevel.TEACHER, true);

    add(new Label("editPeriodTitle", TeachUsSession.get().getString("PeriodPage.editForm"))); //$NON-NLS-1$ //$NON-NLS-2$

    final FormPanel form = new FormPanel("form"); //$NON-NLS-1$
    add(form);/*from   w  ww.java2s.  com*/

    // Name
    final StringTextFieldElement nameElement = new StringTextFieldElement(
            TeachUsSession.get().getString("General.name"), new PropertyModel<String>(period, "name"), true); //$NON-NLS-1$ //$NON-NLS-2$
    nameElement.add(StringValidator.maximumLength(100));
    nameElement.setReadOnly(period.getStatus() != Status.DRAFT);
    form.addElement(nameElement);

    // Begin date
    final DateElement beginDateElement = new DateElement(TeachUsSession.get().getString("General.startDate"), //$NON-NLS-1$
            new PropertyModel<DateMidnight>(period, "beginDate")); //$NON-NLS-1$
    beginDateElement.setReadOnly(period.getStatus() != Status.DRAFT);
    form.addElement(beginDateElement);

    // End date
    final DateElement endDateElement = new DateElement(TeachUsSession.get().getString("General.endDate"), //$NON-NLS-1$
            new PropertyModel<DateMidnight>(period, "endDate")); //$NON-NLS-1$
    endDateElement.add(new IValidator<DateMidnight>() {
        private static final long serialVersionUID = 1L;

        public void validate(IValidatable<DateMidnight> validatable) {
            DateMidnight date = validatable.getValue();
            if (date != null) {
                // Check if the end date conflicts with some bookings
                if (period.getId() != null) {
                    BookingDAO bookingDAO = TeachUsApplication.get().getBookingDAO();
                    DateTime lastBookingDate = bookingDAO.getLastBookingDate(period);
                    if (lastBookingDate != null) {
                        if (date.isBefore(lastBookingDate)) {
                            ValidationError validationError = new ValidationError();
                            String bookingConflictMessage = TeachUsSession.get()
                                    .getString("PeriodPage.endDateBookingConflict");
                            bookingConflictMessage = bookingConflictMessage.replace("${lastBookingDate}",
                                    Formatters.getFormatPrettyDate().print(lastBookingDate));
                            validationError.setMessage(bookingConflictMessage); //$NON-NLS-1$
                            validatable.error(validationError);
                        }
                    }
                }
            }
        }
    });
    form.addElement(endDateElement);

    // Time elements
    final List<Integer> hours = new ArrayList<Integer>();
    DateTime dt = new DateTime().withTime(0, 0, 0, 0);
    final int day = dt.getDayOfMonth();
    while (day == dt.getDayOfMonth()) {
        hours.add(dt.getMinuteOfDay());
        dt = dt.plusMinutes(30);
    }

    final TimeChoiceRenderer<Integer> timeChoiceRenderer = new TimeChoiceRenderer<Integer>();

    // Start time
    final DropDownElement<Integer> startTimeElement = new DropDownElement<Integer>(
            TeachUsSession.get().getString("General.startTime"), new TimeModel(new PropertyModel<LocalTime>( //$NON-NLS-1$
                    period, "startTime")), //$NON-NLS-1$
            hours, timeChoiceRenderer, true);
    startTimeElement.setReadOnly(period.getStatus() != Status.DRAFT);
    form.addElement(startTimeElement);

    // End time
    final DropDownElement<Integer> endTimeElement = new DropDownElement<Integer>(
            TeachUsSession.get().getString("General.endTime"), //$NON-NLS-1$
            new TimeModel(new PropertyModel<LocalTime>(period, "endTime")),
            hours, timeChoiceRenderer, true);
    endTimeElement.setReadOnly(period.getStatus() != Status.DRAFT);
    form.addElement(endTimeElement);

    // Location
    final StringTextFieldElement locationElement = new StringTextFieldElement(
            TeachUsSession.get().getString("General.location"), new PropertyModel<String>(period, "location")); //$NON-NLS-1$ //$NON-NLS-2$
    locationElement.add(StringValidator.maximumLength(100));
    locationElement.setReadOnly(period.getStatus() != Status.DRAFT);
    form.addElement(locationElement);

    // Price
    final DecimalFieldElement priceElement = new DecimalFieldElement(
            TeachUsSession.get().getString("General.price"), new PropertyModel<Double>(period, "price"), 6); //$NON-NLS-1$ //$NON-NLS-2$
    priceElement.setReadOnly(period.getStatus() != Status.DRAFT);
    priceElement.setDefaultNullValue(0.0);
    form.addElement(priceElement);

    // Lesson duration
    final IntegerFieldElement lessonDurationElement = new IntegerFieldElement(
            TeachUsSession.get().getString("General.lessonDuration"), new PropertyModel<Integer>( //$NON-NLS-1$
                    period, "lessonDuration"), //$NON-NLS-1$
            true, 4);
    lessonDurationElement.setReadOnly(period.getStatus() != Status.DRAFT);
    form.addElement(lessonDurationElement);

    // Interval Between Lesson Start
    final IntegerFieldElement intervalBetweenLessonStartElement = new IntegerFieldElement(
            TeachUsSession.get().getString("General.intervalBetweenLessonStart"), //$NON-NLS-1$
            new PropertyModel<Integer>(period, "intervalBetweenLessonStart"), true, 4); //$NON-NLS-1$
    intervalBetweenLessonStartElement.setReadOnly(period.getStatus() != Status.DRAFT);
    form.addElement(intervalBetweenLessonStartElement);

    // Week days
    final CheckGroupElement<WeekDay> weekDaysElement = new CheckGroupElement<WeekDay>(
            TeachUsSession.get().getString("General.weekDays"), new PropertyModel<List<WeekDay>>(period, //$NON-NLS-1$
                    "weekDays"), //$NON-NLS-1$
            Arrays.asList(WeekDay.values()), new WeekDayChoiceRenderer(Format.LONG), true);
    weekDaysElement.setReadOnly(period.getStatus() != Status.DRAFT);
    form.addElement(weekDaysElement);

    // Repeat every week
    final IntegerFieldElement repeatEveryWeekElement = new IntegerFieldElement(
            TeachUsSession.get().getString("General.repeatEveryWeek"), //$NON-NLS-1$
            new PropertyModel<Integer>(period, "repeatEveryWeek")); //$NON-NLS-1$
    repeatEveryWeekElement.setReadOnly(period.getStatus() != Status.DRAFT);
    //      repeatEveryWeekElement.setDefaultNullValue(1);
    form.addElement(repeatEveryWeekElement);

    // Status
    final List<Status> statusList = Arrays.asList(Status.values());
    final DropDownElement<Status> statusElement = new DropDownElement<Status>(
            TeachUsSession.get().getString("General.status"), new PropertyModel<Status>(period, "status"), //$NON-NLS-1$//$NON-NLS-2$
            statusList, new PeriodStatusRenderer());
    statusElement.setReadOnly(period.getStatus() != Status.DRAFT);
    form.addElement(statusElement);

    // Buttons
    form.addElement(new ButtonPanelElement() {
        private static final long serialVersionUID = 1L;

        @Override
        protected List<IButton> getAdditionalButtons() {
            final List<IButton> buttons = new ArrayList<IButton>();
            buttons.add(new IButton() {
                private static final long serialVersionUID = 1L;

                public String getValue() {
                    return TeachUsSession.get().getString("General.preview"); //$NON-NLS-1$
                }

                public void onClick(final AjaxRequestTarget target) {
                    final WebMarkupContainer preview = generatePreview(period);
                    PeriodPage.this.replace(preview);
                    target.add(preview);
                }
            });
            return buttons;
        }

        @Override
        protected void onCancel() {
            getRequestCycle().setResponsePage(PeriodsPage.class);
        }

        @Override
        protected void onSave(final AjaxRequestTarget target) {
            final PeriodDAO periodDAO = TeachUsApplication.get().getPeriodDAO();

            periodDAO.save(period);

            getRequestCycle().setResponsePage(PeriodsPage.class);
        }
    });

    add(new Label("previewTitle", TeachUsSession.get().getString("General.preview"))); //$NON-NLS-1$ //$NON-NLS-2$

    if (period.getId() != null) {
        add(generatePreview(period));
    } else {
        add(new WebComponent("calendar").setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true)
                .setVisible(false));
    }
}

From source file:eu.clarin.cmdi.virtualcollectionregistry.service.impl.HttpResponseValidator.java

License:Open Source License

@Override
public void validate(IValidatable<String> validatable) {
    try {/*  ww w  .j  av a 2 s .c  om*/
        if (!checkValidityOfUri(URI.create(validatable.getValue()))) {
            ValidationError error = new ValidationError();
            if (status == null) {
                error.setMessage(String.format("There was an unkown issue when trying to connect to '%s'",
                        validatable.getValue()));
            } else {
                error.setMessage(String.format("'%s' received invalid HTTP response: HTTP %d %s",
                        validatable.getValue(), status.getStatusCode(), status.getReasonPhrase()));
            }
            validatable.error(error);
        }
    } catch (UnknownHostException ex) {
        ValidationError error = new ValidationError();
        error.setMessage(String.format("Unkown host: '%s'", validatable.getValue()));
        validatable.error(error);
    } catch (IOException ex) {
        ValidationError error = new ValidationError();
        error.setMessage(String.format("There was an I/O issue when trying to connect to '%s': %s",
                validatable.getValue(), ex.getMessage()));
        validatable.error(error);
    } catch (IllegalArgumentException ex) {
        ValidationError error = new ValidationError();
        error.setMessage(String.format("Invalid URI: '%s'", validatable.getValue()));
        validatable.error(error);
    }
}

From source file:net.ftlines.wicket.validation.bean.ViolationConverter.java

License:Apache License

@Override
public <T> ValidationError convert(ConstraintViolation<T> violation) {
    ConstraintDescriptor<?> desc = violation.getConstraintDescriptor();

    ValidationError error = new ValidationError();
    error.setMessage(violation.getMessage());
    addMessageKey(error, desc, "message");

    // TODO figure out how to handle composite constraints, see desc.isReportAsSingleViolation()

    for (String key : desc.getAttributes().keySet()) {
        error.setVariable(key, desc.getAttributes().get(key));
    }/*from   w ww. ja v a2  s.co m*/
    return error;
}

From source file:org.apache.isis.viewer.wicket.ui.components.scalars.reference.ReferencePanel.java

License:Apache License

@Override
protected FormGroup addComponentForRegular() {
    final ScalarModel scalarModel = getModel();
    final String name = scalarModel.getName();

    entityLink = new EntityLinkSelect2Panel(ComponentType.ENTITY_LINK.getWicketId(), this);
    syncWithInput();//from  w w w . j a v a  2 s. c  om

    setOutputMarkupId(true);
    entityLink.setOutputMarkupId(true);
    entityLink.setLabel(Model.of(name));

    final FormGroup labelIfRegular = new FormGroup(ID_SCALAR_IF_REGULAR, entityLink);
    labelIfRegular.add(entityLink);

    final String describedAs = getModel().getDescribedAs();
    if (describedAs != null) {
        labelIfRegular.add(new AttributeModifier("title", Model.of(describedAs)));
    }

    final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(entityLink));
    labelIfRegular.add(scalarName);
    NamedFacet namedFacet = getModel().getFacet(NamedFacet.class);
    if (namedFacet != null) {
        scalarName.setEscapeModelStrings(namedFacet.escaped());
    }

    // find the links...
    final List<LinkAndLabel> entityActions = EntityActionUtil
            .getEntityActionLinksForAssociation(this.scalarModel, getDeploymentType());

    addPositioningCssTo(labelIfRegular, entityActions);

    addOrReplace(labelIfRegular);

    addFeedbackTo(labelIfRegular, entityLink);

    // ... add entity links to panel (below and to right)
    addEntityActionLinksBelowAndRight(labelIfRegular, entityActions);

    // add semantics
    entityLink.setRequired(getModel().isRequired());
    entityLink.add(new IValidator<ObjectAdapter>() {

        private static final long serialVersionUID = 1L;

        @Override
        public void validate(final IValidatable<ObjectAdapter> validatable) {
            final ObjectAdapter proposedAdapter = validatable.getValue();
            final String reasonIfAny = getModel().validate(proposedAdapter);
            if (reasonIfAny != null) {
                final ValidationError error = new ValidationError();
                error.setMessage(reasonIfAny);
                validatable.error(error);
            }
        }
    });

    if (getModel().isRequired()) {
        scalarName.add(new CssClassAppender("mandatory"));
    }
    return labelIfRegular;
}

From source file:org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldAbstract.java

License:Apache License

protected void addValidator() {
    final ScalarModel scalarModel = getModel();

    textField.add(new IValidator<T>() {
        private static final long serialVersionUID = 1L;

        @Override//from w ww. ja  v  a2 s. com
        public void validate(final IValidatable<T> validatable) {
            final T proposedValue = validatable.getValue();
            final ObjectAdapter proposedAdapter = getPersistenceSession().adapterFor(proposedValue);
            final String reasonIfAny = scalarModel.validate(proposedAdapter);
            if (reasonIfAny != null) {
                final ValidationError error = new ValidationError();
                error.setMessage(reasonIfAny);
                validatable.error(error);
            }
        }
    });
}

From source file:org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldDatePickerAbstract.java

License:Apache License

private void addObjectAdapterValidator() {
    final AbstractTextComponent<T> textField = getTextField();

    textField.add(new IValidator<T>() {
        private static final long serialVersionUID = 1L;

        @Override/*from   w  ww.ja  va  2  s .  com*/
        public void validate(final IValidatable<T> validatable) {
            final T proposed = validatable.getValue();
            final ObjectAdapter proposedAdapter = adapterFor(proposed);
            String reasonIfAny = scalarModel.validate(proposedAdapter);
            if (reasonIfAny != null) {
                final ValidationError error = new ValidationError();
                error.setMessage(reasonIfAny);
                validatable.error(error);
            }
        }
    });
}

From source file:org.artifactory.common.wicket.component.file.path.PathAutoCompleteChrootValidator.java

License:Open Source License

@Override
protected void onValidate(IValidatable validatable) {
    File selectedFile = (File) validatable.getValue();
    try {/* ww  w. ja v  a2s.  c  om*/
        if (!selectedFile.getCanonicalPath().startsWith(new File(chroot).getCanonicalPath())) {
            ValidationError error = new ValidationError();
            error.setMessage("Selected directory is out of the defined root folder bounds.");
            validatable.error(error);
        }
    } catch (IOException e) {
        ValidationError error = new ValidationError();
        error.setMessage("Error occurred during folder validation, please review the logs for further details: "
                + e.getMessage());
        log.error("Error occurred during folder auto complete validation", e);
        validatable.error(error);
    }
}