i think that was legacy behavior because onError() did not always exist.

feel free to fix it, in 1.3 we can make the break

-igor


On 12/11/06, Johan Compagner <[EMAIL PROTECTED]> wrote:

We now have this:

protected final void onEvent(final AjaxRequestTarget target)
    {
        final FormComponent formComponent = getFormComponent();
        boolean callOnUpdate = true;

        try
        {
            formComponent.inputChanged();
            formComponent.validate();
            if (formComponent.hasErrorMessage())
            {
                formComponent.invalid();

                onError(target, null);
            }
            else
            {
                formComponent.valid();
                formComponent.updateModel();
            }
        }
        catch (RuntimeException e)
        {
            callOnUpdate = false;
            onError(target, e);

        }

        if (callOnUpdate)
        {
            onUpdate(target);
        }
}

why is onUpdate(target) also called when onError is also called (if it has
errormessages)

shouldn't it be:


protected final void onEvent(final AjaxRequestTarget target)
    {
        final FormComponent formComponent = getFormComponent();
        boolean callOnUpdate = true;

        try
        {
            formComponent.inputChanged();
            formComponent.validate();
            if (formComponent.hasErrorMessage())
            {
                formComponent.invalid();

               callOnUpdate = false;
                onError(target, null);
            }
            else
            {
                formComponent.valid();
                formComponent.updateModel();
            }
        }
        catch (RuntimeException e)
        {
            callOnUpdate = false;
            onError(target, e);

        }

        if (callOnUpdate)
        {
                onUpdate(target);
        }
}


or (but then onError is called when onUpdate fails....)


protected final void onEvent(final AjaxRequestTarget target)
{
        final FormComponent formComponent = getFormComponent();
        try
        {
            formComponent.inputChanged();
            formComponent.validate();
            if (formComponent.hasErrorMessage())
            {
                formComponent.invalid();
                onError(target, null);
            }
            else
            {
                formComponent.valid();
                formComponent.updateModel();
                onUpdate(target);
            }
        }
        catch (RuntimeException e)
        {
            callOnUpdate = false;
            onError(target, e);

        }
}

johan


Reply via email to