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] [Resolved] (TRINIDAD-2378) UIXComponentBase should override clearCachedClientId to avoid calling getId() at times when the UIViewRoot isn't present
Date Thu, 14 Nov 2013 20:37:20 GMT

     [ 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)

Mime
View raw message