-
Type:
Bug
-
Status: Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: liferay-faces-4.2.5-ga6
-
Component/s: Liferay Faces Bridge Impl / Demos / Tests
-
Labels:None
This problem was discovered by the JSR 329 TCK after upgrading to Mojarra 2.2.5 in the Liferay Faces 4.2.x branch (currently master).
The patch for JAVASERVERFACES-3023 was applied to Mojarra 2.2.5 that included a call to ExternalContext.getResponseCharacterEncoding() in the following method of Mojarra's MultiViewHandler.java:
@Override public String getRedirectURL(FacesContext context, String viewId, Map<String, List<String>> parameters, boolean includeViewParams) { ... }
The problem is that javax.portlet.ActionResponse and javax.portlet.EventResponse do not implement the javax.portlet.MimeResponse interface and subsequently do not have a getResponseCharacterEncoding() that can be called. In fact the JSR 329 TCK tests this case in order to make sure that an IllegalStateException is thrown. Having said that, JSR 329 is written against JSF 1.2 and the aforementioned getRedirectURL method was introduced in JSF 2.0.
Since the Mojarra patch is a reasonable one, it will be necessary to work-around this problem in Liferay Faces Bridge.