portals-bridges-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Sean Taylor (JIRA)" <bridges-...@portals.apache.org>
Subject [jira] Assigned: (PB-35) Multiple instances of the same bridge application behave badly due to ID conflicts
Date Tue, 07 Feb 2006 19:13:59 GMT
     [ http://issues.apache.org/jira/browse/PB-35?page=all ]

David Sean Taylor reassigned PB-35:

    Assign To: David Sean Taylor

> 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
>         Type: Bug
>   Components: jsf
>  Environment: Tested in Liferay
>     Reporter: russ danner
>     Assignee: 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 [com.liferay.portlet.PortletSessionImpl@608486] namespace response[_contentRepositoryBrowser-wide_WAR_contentRepositoryBrowser_INSTANCE_Ju5n_]
> portlet [com.liferay.portlet.PortletSessionImpl@1919998] 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:
For more information on JIRA, see:

To unsubscribe, e-mail: bridges-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: bridges-dev-help@portals.apache.org

View raw message