[ http://issues.apache.org/jira/browse/PB-35?page=comments#action_12438050 ] David Sean Taylor commented on PB-35: -------------------------------------
ok, ive gone back to the jsf bridge. the internal support in myfaces was not working for me ive upgraded the bridge to myfaces 1.1.4 still seeing problems with the same portlet twice on the same page, even after your patch otherwise things are working much better > Multiple instances of the same bridge application behave badly due to ID > conflicts > ---------------------------------------------------------------------------------- > > Key: PB-35 > URL: http://issues.apache.org/jira/browse/PB-35 > Project: Portals Bridges > Issue Type: Bug > Components: jsf > Environment: Tested in Liferay > Reporter: russ danner > Assigned To: David Sean Taylor > > I am using the myFaces implementation of JSF in conjunction with the Apache > portal bridge. > I have no issue when I use the portlet as a single instance. All is > beautiful. When I make the portlet multi-instance the eorld comes tumbling > down. All the javascript and component ID's are the same. > -- > I know myfaces looks to the external context to call help create a unique id > for the components which should call response.namespace(); > You can see in the HTML output of the lifray install that unqiue names are > being generated for the each portlet (both the same "flavor") > portlet [EMAIL PROTECTED] namespace > response[_contentRepositoryBrowser-wide_WAR_contentRepositoryBrowser_INSTANCE_Ju5n_] > portlet [EMAIL PROTECTED] namespace > response[_contentRepositoryBrowser-wide_WAR_contentRepositoryBrowser_INSTANCE_1cKB_] > I know myFaces makes the following call on create unique Id: > public String createUniqueId() > { > ExternalContext extCtx = > FacesContext.getCurrentInstance().getExternalContext(); > return extCtx.encodeNamespace(UNIQUE_ID_PREFIX + _uniqueIdCounter++); > } > which in the end should pickup the names given by > RenderResponse.getNamespace(), yet that is no where in the HTML output. > As far as I can tell this is because the external context implementation > provided with the apache jsf portlet bridge does the following: > /** > * @see > javax.faces.context.ExternalContext#encodeNamespace(java.lang.String) > */ > public String encodeNamespace(String s) > { > return s; > } > according to the documentation for ExternalContext.encodeNamespace(..) > Return the specified name, after prefixing it with a namespace that ensures > that it will be unique within the context of a particular page. > Servlet: The input value must be returned unchanged. > Portlet: The returned value must be the input value prefixed by the value > returned by the javax.portlet.RenderResponse method getNamespace(). -- 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
