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] Commented: (MYFACES-1358) PortletExternalContextImpl should massage RenderResponse.getNamespace() into acceptable ID
Date Wed, 04 Oct 2006 16:37:21 GMT
    [ http://issues.apache.org/jira/browse/MYFACES-1358?page=comments#action_12439891 ] 
            
Scott O'Bryan commented on MYFACES-1358:
----------------------------------------

You are incorrect.  The API specification for getNamespace reads:

"The value returned by this method should be prefixed or appended to elements, such as JavaScript
variables or function names, to ensure they are unique in the context of the portal page."

According to the W3C and ECMA specifications for javascript variables, function names, and
element id's, characters like the # are not valid characters for this purpose.  I'm of the
opinion that MyFaces should not have to fix a deficiency in the GridSphere framework.

> PortletExternalContextImpl should massage RenderResponse.getNamespace() into acceptable
ID
> ------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-1358
>                 URL: http://issues.apache.org/jira/browse/MYFACES-1358
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: Portlet_Support
>    Affects Versions: 1.1.3
>         Environment: MacOS X, JDK 5, GridSphere Portal
>            Reporter: Jason Novotny
>
> 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

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

        

Mime
View raw message