Uploaded image for project: 'Pluto'
  1. Pluto
  2. PLUTO-506

Invoking the store() method of PortletPreferences object results in NPE if no preferences declared in portlet.xml

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0-refactoring, 2.0.0
    • 2.0-refactoring, 2.0.0
    • portlet container
    • None
    • JDK 1.5.0_16, Tomcat 5.5.27

    Description

      If you have not declared any preferences for a portlet in the deployment descriptor (portlet.xml) and then invoke the store() method of the PortletPreferences object, a NullPointerException is thrown with the following stack trace:

      java.lang.NullPointerException
      at org.apache.pluto.internal.PreferencesValidatorRegistry.getPreferencesValidator(PreferencesValidatorRegistry.java:97)
      at org.apache.pluto.internal.impl.PortletEntityImpl.getPreferencesValidator(PortletEntityImpl.java:167)
      at org.apache.pluto.internal.impl.PortletPreferencesImpl.internalStore(PortletPreferencesImpl.java:298)
      at org.apache.pluto.internal.impl.PortletPreferencesImpl.store(PortletPreferencesImpl.java:277) . . .

      In the getPreferencesValidator() method of the PreferencesValidatorRegistry the PortletPreferencesDD object is retrieved and its getPreferencesValidator() method is invoked without first checking to see if the PortletPreferencesDD object is null.

      As a workaround you can make sure that you always declare at least one preference in your portlet.xml file – this will ensure that the PortletPreferencesDD object is not null.

      Attachments

        1. patch-506.txt
          3 kB
          Brian DeHamer

        Activity

          People

            Unassigned Unassigned
            bdehamer Brian DeHamer
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: