You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org> on 2013/11/14 21:37:20 UTC

[jira] [Resolved] (TRINIDAD-2378) UIXComponentBase should override clearCachedClientId to avoid calling getId() at times when the UIViewRoot isn't present

     [ https://issues.apache.org/jira/browse/TRINIDAD-2378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott O'Bryan resolved TRINIDAD-2378.
-------------------------------------

    Resolution: Fixed

r1470258 | bsullivan | 2013-04-21 03:25:49 +0000 | 3 lines
Changed paths:
   M /myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponent.java
   M /myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/UIXComponentBase.java
   M /myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/component/ClientIdCachingTest.java
   M /myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/render/RenderUtilsTest.java
   M /myfaces/trinidad/trunk/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/CoreRenderKitTest.java

[TRINIDAD-2378] UIXComponentBase should override clearCachedClientId to avoid calling getId() at times when the UIViewRoot isn't present

The current implementation of clearCachedClientIds on UIXComponent is final and always calls setId() with the result of getId(). The problem is that calling getId() requires a call to UIViewRoot.getUniqueId() if the component does not already have an id. Unfortunately, there are times when the UIViewRoot isn't attached to the FacesContext when we need to clear cached client ids. The easiest and fastest solution is to make clearCachedClientIds() non-final and allow UIXComponentBase to override the method to clear out its cached clientId directly.


> UIXComponentBase should override clearCachedClientId to avoid calling getId() at times when the UIViewRoot isn't present
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TRINIDAD-2378
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-2378
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>          Components: Components
>    Affects Versions: 2.1.0-core
>            Reporter: Blake Sullivan
>            Assignee: Blake Sullivan
>         Attachments: trin2378.diff
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> The current implementation of clearCachedClientIds on UIXComponent is final and always calls setId() with the result of getId().  The problem is that calling getId() requires a call to UIViewRoot.getUniqueId() if the component does not already have an id.  Unfortunately, there are times when the UIViewRoot isn't attached to the FacesContext when we need to clear cached client ids.  The easiest and fastest solution is to make clearCachedClientIds() non-final and allow UIXComponentBase to override the method to clear out its cached clientId directly.



--
This message was sent by Atlassian JIRA
(v6.1#6144)