[PORTLETSPEC3-7] Errata: Clarify Inconsistency about Removing Shared Render Parameters Created: 02/May/13 Updated: 05/Aug/13 Resolved: 26/Jul/13
|Remaining Estimate:||Not Specified|
|Time Spent:||Not Specified|
|Original Estimate:||Not Specified|
Referring to Working Document 3, Section "PLT 11.1.2 Public Render Paramaters" states on
"If a portlet wants to delete a public render parameter it needs to use the
Judging from this section, it would seem like public render parameters can only
However, in the javadoc for StateAwareResponse.setRenderParameters it is stated:
In particular, it states that "All previously set render parameters are cleared." without
What happens when the new map provided to setRenderParameters changes or maybe even does not contain
Also, can individual entries in the value string be null? if so, what would that mean?
We need to decide how it should behave. My take would be to update the javadoc for
And the above-mentioned section in the spec needs to be changed as follows:
However, I'm not sure that this meets the original intent and I am not convinced
More work needs to be done in this area.
|Comment by Neil Griffin [ 13/May/13 ]|
@msnicklous: I checked the Pluto portlet container implementation, and it interprets the requirements according to the clarifications you suggest.
However, I just checked the Liferay portlet container implementation, it it interprets:
"All previously set render parameters are cleared"
"All previously set [non-public] render parameters are cleared"
If you feel that the clarifications are essential, then please let me know since it would introduce a change into the way Liferay works.
|Comment by Neil Griffin [ 15/May/13 ]|
|Comment by msnicklous [ 18/Jul/13 ]|
1) If the public parameter was set previously during execution of the same action request, it can be deleted using an empty map.
2) If the public parameter was set during a previous request, it remains unchanged when attempting to delete it using an empty map, and no exception is thrown.
However, a public render parameter can be set to a new value using setParameters() regardless of whether the public parameter already existed or not.
Both Pluto and WebSphere show this behavior.
|Comment by msnicklous [ 19/Jul/13 ]|
I think that it should not be permissible to remove public render parameters by setting them to null or by leaving them out of the map parameter of the setRenderParameters() methods.
I suggest updating the description for StateAwareResponse#setRenderParameters() method as follows:
|Comment by Neil Griffin [ 23/Jul/13 ]|
|Comment by msnicklous [ 26/Jul/13 ]|
Updated apidocs as suggested.
|Comment by msnicklous [ 02/Aug/13 ]|
reviewed on 20130730 and can be closed.
|Comment by Neil Griffin [ 05/Aug/13 ]|
Update to my +1 vote: The changes to the apidocs will require no changes to Liferay Portal's implementation.