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:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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


Mime
View raw message