Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0-refactoring, 2.0.0
-
None
-
JDK 1.5.0_16, Tomcat 5.5.27
Description
If a PreferencesValidator is registered in the portlet deployment descriptor (portlet.xml) with any whitespace between the class name and the surrounding <preferences-validator> element, a ValidatorException is thrown whenever the store() method of the PortletPreferences object is invoked.
The stack trace looks something like this:
javax.portlet.ValidatorException: java.lang.ClassNotFoundException:
com.hp.frameworks.sample.search.validation.SearchPreferencesValidator
at org.apache.pluto.internal.PreferencesValidatorRegistry.getPreferencesValidator(PreferencesValidatorRegistry.java:111)
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)
The root issue here is that the getPreferencesValidator() method of the org.apache.pluto.descriptors.portlet.PortletPreferencesDD should be trimming the string that is returned so that the whitespace is removed before an attempt is made to instantiate the class.