myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scott O'Bryan (JIRA)" <...@myfaces.apache.org>
Subject [jira] Resolved: (PORTLETBRIDGE-14) Setting the request character encoding during a RenderRequest
Date Wed, 21 Nov 2007 22:49:43 GMT

     [ https://issues.apache.org/jira/browse/PORTLETBRIDGE-14?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Scott O'Bryan resolved PORTLETBRIDGE-14.
----------------------------------------

    Resolution: Fixed

Issue resolved by patch in PORTLETBRIDGE-3 issue.

> Setting the request character encoding during a RenderRequest
> -------------------------------------------------------------
>
>                 Key: PORTLETBRIDGE-14
>                 URL: https://issues.apache.org/jira/browse/PORTLETBRIDGE-14
>             Project: MyFaces Portlet Bridge
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 1.0.0-SNAPSHOT
>         Environment: Tomcat 5.5.20, Pluto 1.1.4, MyFaces 1.2.1-SNAPSHOT (locally patched
version)
>            Reporter: Bernhard Huemer
>            Assignee: Scott O'Bryan
>            Priority: Critical
>             Fix For: 1.0.0-SNAPSHOT
>
>         Attachments: Pluto Screenshot.jpg, Stacktrace.jpg
>
>
> The JSF specification requires the ViewHandler to store the content-type in the session
at the end of the render-response phase (see 2.5.2.2 "Determining the Character Encoding").
On subsequent render requests the view will be restored (actually, a new one will be created
but that doesn't matter) and during this task the ViewHandler tries to set the request character
encoding. 
> /// myfaces-api/src/main/java/javax/faces/application/ViewHandler.java
> /**
>  * Method must be called by the JSF impl at the beginning of Phase <i>Restore View</i>
of the JSF
>  * lifecycle.
>  * 
>  * @since JSF 1.2
>  */
> public void initView(javax.faces.context.FacesContext context) throws FacesException
> {
>   String _encoding = this.calculateCharacterEncoding(context);
>   if(_encoding != null)
>   {
>     try
>     {
>       context.getExternalContext().setRequestCharacterEncoding(_encoding);
>     }
>     catch(UnsupportedEncodingException uee)
>     {
>       throw new FacesException(uee);	
>     }
>   }
> }
> \\\ 
> However, this attempt fails as the portlet bridge requires the request to be an ActionRequest.
> ///  portlet-bridge-impl/src/main/java/org/apache/myfaces/portlet/faces/context/PortletExternalContextImpl
> public void setRequestCharacterEncoding(String encoding) throws UnsupportedEncodingException,
>                                                         IllegalStateException
> {
>   if (mPhase != Bridge.PortletPhase.ActionPhase)
>   {
>     throw new IllegalStateException(
>                                     "PortletExternalContextImpl.setRequestCharacterEncoding():
Request must be an ActionRequest");
>   }
>   ((ActionRequest) mPortletRequest).setCharacterEncoding(encoding);
> }
> \\\

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message