Pluto
  1. Pluto
  2. PLUTO-506

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

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-refactoring, 2.0.0
    • Fix Version/s: 2.0-refactoring, 2.0.0
    • Component/s: portlet container
    • Labels:
      None
    • Environment:
      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.

      1. patch-506.txt
        3 kB
        Brian DeHamer

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            Brian DeHamer
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development