Skip to main content

[JIRA] Resolved: (PORTLETSPEC3-7) Errata: Clarify Inconsistency about Removing Shared Render Parameters

  • From: "msnicklous (JIRA)" < >
  • To:
  • Subject: [JIRA] Resolved: (PORTLETSPEC3-7) Errata: Clarify Inconsistency about Removing Shared Render Parameters
  • Date: Fri, 26 Jul 2013 12:22:25 +0000 (UTC)
  • Auto-submitted: auto-generated


     [ 
https://java.net/jira/browse/PORTLETSPEC3-7?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

msnicklous resolved PORTLETSPEC3-7.
-----------------------------------

    Resolution: Fixed

Updated apidocs as suggested.

> Errata: Clarify Inconsistency about Removing Shared Render Parameters
> ---------------------------------------------------------------------
>
>                 Key: PORTLETSPEC3-7
>                 URL: https://java.net/jira/browse/PORTLETSPEC3-7
>             Project: portletspec3
>          Issue Type: Improvement
>            Reporter: msnicklous
>            Assignee: msnicklous
>            Priority: Minor
>
> Referring to Working Document 3, Section "PLT 11.1.2 Public Render 
> Paramaters" states on 
> page 77, beginning on line 22 the following: 
> "If a portlet wants to delete a public render parameter it needs to use the
> removePublicRenderParameter method on the StateAwareResponse or the
> PortletURL."
> Judging from this section, it would seem like public render parameters can 
> only 
> be removed using this method. 
> However, in the javadoc for StateAwareResponse.setRenderParameters it is 
> stated:
> {noformat}
> -------------------------
> setRenderParameters
> void setRenderParameters(java.util.Map<java.lang.String,java.lang.String[]> 
> parameters)
>     Sets a parameter map for the render request.
>     All previously set render parameters are cleared.
>     These parameters will be accessible in all sub-sequent render calls via 
> the PortletRequest.getParameter call 
>     until a new request is targeted to the portlet.
>     The given parameters do not need to be encoded prior to calling this 
> method.
>     The portlet should not modify the map any further after calling this 
> method.
>     Parameters:
>         parameters - Map containing parameter names for the render phase as 
> keys and parameter values as map values. 
>         The keys in the parameter map must be of type String. The values in 
> the parameter map must be of type String array (String[]). 
>     Throws:
>         java.lang.IllegalArgumentException - if parameters is null, if any 
> of the keys in the Map are null, 
>         if any of the keys is not a String, or if any of the values is not 
> a String array. 
>         java.lang.IllegalStateException - if the method is invoked after 
> sendRedirect has been called.
> -------------------------
> {noformat}
> In particular, it states that "All previously set render parameters are 
> cleared." without
> explicitly taking public and private parameters into account. 
> What happens when the new map provided to setRenderParameters changes or 
> maybe even does not contain 
> a public render parameter that was set on the corresponding request? Should 
> that public render parameter
> be changed or removed?
> Also, can individual entries in the value string[] be null? if so, what 
> would that mean?
> In general, can parameters have a value of null? 
> We need to decide how it should behave. My take would be to update the 
> javadoc for 
> StateAwareResponse.setParameters as follows:
> Corrected:
> {noformat}
> -------------------------
> setRenderParameters
> void setRenderParameters(java.util.Map<java.lang.String,java.lang.String[]> 
> parameters)
>     Sets a parameter map for the render request.
> MSN UPDATE==>    The new paramater map applies to public as well as to 
> private render parameters.
>     All previously set render parameters are cleared.
>     These parameters will be accessible in all sub-sequent render calls via 
> the PortletRequest.getParameter call 
>     until a new request is targeted to the portlet.
>     The given parameters do not need to be encoded prior to calling this 
> method.
>     The portlet should not modify the map any further after calling this 
> method.
>     Parameters:
>         parameters - Map containing parameter names for the render phase as 
> keys and parameter values as map values. 
>         The keys in the parameter map must be of type String. The values in 
> the parameter map must be of type String array (String[]). 
>     Throws:
>         java.lang.IllegalArgumentException - if parameters is null, if any 
> of the keys in the Map are null, 
>         if any of the keys is not a String, or if any of the values is not 
> a String array
> MSN UPDATE==>        , or and entries in the values String array are null. 
>         java.lang.IllegalStateException - if the method is invoked after 
> sendRedirect has been called.
> -------------------------
> {noformat}
> And the above-mentioned section in the spec needs to be changed as follows:
> Corrected:
> -------------------------
> If a portlet wants to delete a public render parameter it needs to use the
> removePublicRenderParameter method or the setRenderParameters method on the 
> StateAwareResponse or the
> PortletURL.
> -------------------------
> However, I'm not sure that this meets the original intent and I am not 
> convinced
> these changes alone would make for a consistent description.
> More work needs to be done in this area.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://java.net/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[JIRA] Resolved: (PORTLETSPEC3-7) Errata: Clarify Inconsistency about Removing Shared Render Parameters

msnicklous (JIRA) 07/26/2013
 
 
Close
loading
Please Confirm
Close