Uploaded image for project: 'Struts 1'
  1. Struts 1
  2. STR-2020

Improve error detail when form validation fails from absent ActionServlet

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.1.0
    • Fix Version/s: 1.4.0
    • Component/s: Core
    • Labels:
      None
    • Environment:
      Operating System: other
      Platform: Other
    • Bugzilla Id:
      27910

      Description

      In my multi-step form wizard, hidden form fields may be a bad idea for security
      reasons. Therefore, I keep a copy of the form in the session and incrementally
      add the values gathered from the browser.
      There arose even a scenario where it was advisable to set some values in that
      form even without first doing a PropertyUtils.copyProperties from a form coming
      from a browser. A subsequent .validate() then causes the above nullPointer
      exception.

      Suggestion:
      When doing the
      ServletContext application = getServlet().getServletContext();
      in the ValidatorForm, first test whether the "getServlet()" really returns other
      than null and otherwise return a decent error message.

      I am not fully clear why the problem arises, but I guess that ValidatorForm()
      not having a constructor method is part of the reason for this.
      Anyway, I got it working by extending my form as follows:
      public class MyForm extends ValidatorForm
      public MyForm()

      { super(); }

      public MyForm(ActionServlet servlet) {
      this();
      if (super.getServlet() == null) {
      if (servlet == null)

      { log.error("servlet == null"); }

      else

      { super.setServlet(servlet); log.debug("set servlet: " + servlet); }

      } else

      { log.debug("super.getServlet(): " + super.getServlet()); }

      when creating the form, I call it with
      MyForm myForm = new MyForm(getServlet());

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                pbenedict Paul Benedict
                Reporter:
                hauser@acm.org Ralf Hauser
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: