You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2007/12/01 21:50:31 UTC

svn commit: r600193 - /myfaces/core/trunk_1.2.x/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java

Author: lu4242
Date: Sat Dec  1 12:50:30 2007
New Revision: 600193

URL: http://svn.apache.org/viewvc?rev=600193&view=rev
Log:
Fixes MYFACES-1770 components inside c:forEach has wrong id generation

Modified:
    myfaces/core/trunk_1.2.x/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java

Modified: myfaces/core/trunk_1.2.x/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk_1.2.x/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java?rev=600193&r1=600192&r2=600193&view=diff
==============================================================================
--- myfaces/core/trunk_1.2.x/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java (original)
+++ myfaces/core/trunk_1.2.x/api/src/main/java/javax/faces/webapp/UIComponentClassicTagBase.java Sat Dec  1 12:50:30 2007
@@ -1144,6 +1144,7 @@
             if (isInAnIterator)
             {
                 setId(createNextId(id));
+                id = getId();
             }
             else
             {
@@ -1183,11 +1184,12 @@
     {
         Integer currentCounter = (Integer) getFacesContext().getExternalContext().getRequestMap().get(componentId);
 
-        int iCurrentCounter = 0;
+        int iCurrentCounter = 1;
 
         if (currentCounter != null)
         {
             iCurrentCounter = currentCounter.intValue();
+            iCurrentCounter++;
         }
 
         getFacesContext().getExternalContext().getRequestMap().put(componentId, new Integer(iCurrentCounter));
@@ -1201,7 +1203,7 @@
     {
         Set<String> previousJspIdsSet = getPreviousJspIdsSet();
 
-        if (previousJspIdsSet.contains(jspId) && isIncludedOrForwarded())
+        if (previousJspIdsSet.contains(jspId) || isIncludedOrForwarded())
         {
             isInAnIterator = true;
         }
@@ -1220,6 +1222,10 @@
         if (previousJspIdsSet == null)
         {
             previousJspIdsSet = new HashSet<String>();
+            //Add it to the context! The next time is called
+            //this method it takes the ref from the RequestContext
+            getFacesContext().getExternalContext().getRequestMap()
+                .put(PREVIOUS_JSP_IDS_SET, previousJspIdsSet);
         }
 
         return previousJspIdsSet;