Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Invalid
-
1.1.3
-
None
-
None
-
MacOS X, JDK 5, GridSphere Portal
Description
Hi,
I've been testing the most basic portlet in our GridSphere framework and ran into this error:
java.lang.IllegalArgumentException: Subsequent characters of component identifier must be a letter, a digit, an underscore ('_'), or a dash ('-')! But component identifier contains "#"
at javax.faces.component.UIComponentBase.isIdValid(UIComponentBase.java:1049)
It appears that PortletExternalContextImpl is using the RenderResponse.getNamespace() method which in our case will return a string containing a #.
The JSR168 spec. does not specify any disallowed characters in getNamespace() so I think this is a bug in the PortletExternalContextImpl class-- probably in the
public String encodeNamespace(String name)
method, it should conert the response.getNamespace into a form that the UIComponentBase.isValid method can deal with.
Thanks, Jason