Duplicate client id generation in "Any" component
-------------------------------------------------

                 Key: TAPESTRY-2546
                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2546
             Project: Tapestry
          Issue Type: Bug
          Components: Core Components
    Affects Versions: 5.0.13
            Reporter: Aleksey Baranyuk


Hello! I've found a problem in component "Any". If I use "Any"  component in 
different components i get duplicate client id. For example, I have component 
"Header". And I use "Any" in tml like:
<div t:type="any" t:mixins="myMixin1">
  some content
<div>

And I have a component "Dashboard". It contains "Header" and uses "Any" 
component like:
<div t:type="any" t:mixins="myMixin2">
  some content
<div>
<div t:type="any" t:mixins="myMixin2">
  some content
<div>
<div t:type="any" t:mixins="myMixin2">
  some content
<div>

Mixins are like this:

@InjectContainer
    private ClientElement element;
...
String id=element.getClientId();

This id is realy inique, but generated Ids for div element in "Any" component 
are duplicate. I have output html like this:

<div id="any">
</div>

<div id="any">
</div>
<div id="any_0">
</div>
<div id="any_1">
</div>

I've found how "Any" component generated id for div element. And i think the 
solution is:

Index: 
tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Any.java
===================================================================
--- 
tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Any.java    
    (revision 681375)
+++ 
tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Any.java    
    (working copy)
@@ -72,7 +72,7 @@
         if (uniqueId == null)
         {
             uniqueId = renderSupport.allocateClientId(clientId);
-            anyElement.forceAttributes("id", clientId);
+            anyElement.forceAttributes("id", uniqueId);
         }
 
         return uniqueId;







-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to