Re: Custom error-page is being ignored (only for certain paths)
Hi Is there any better way to resolve that rather than writing my own filter with overkill code? Regards, Daniel. On Sun, Jul 7, 2013 at 2:28 PM, Daniel Reznick vedm...@gmail.com wrote: For some reason my error-page error-code404/error-code location/error/error.html/location /error-page which is defined in tomcat\conf\web.xml is being ignored when I'm trying to access the following path WebAppName/javax.faces.resource/anyFileName.jsf I know that its cause of the *javax.faces.resource* prefix and the *.jsf* suffix combined together... cause if I change one of them I do get the custom error page I do know that its not a common path to pick, but still I wonder how can I make it use my custom error-page b.t.w , I'm using *myfaces 2.0.11* I found one way to overcome it by using implementing custom filter and setting response.sendError(404 but Its not a good solution IMO , cause I need to use new File each time to check for existence and add some logic for converting the .jsf to xhtml or omitting .jsf before checking the .exists() for the file this is a code snippet: String path = ((HttpServletRequest) req).getServletPath(); if (((HttpServletRequest) req).getRequestURI().contains(javax.faces.resource) !new File(getFilterConfig().getServletContext().getRealPath(path)).exists()) { HttpServletResponse response = (HttpServletResponse) res; response.sendError(404, Cannot find + path); } else { chain.doFilter(req, res); } Is there any other better way to use the Custom error-page for path of the type WebAppName/javax.faces.resource/anyFileName.jsf Regards, Daniel.
Custom error-page is being ignored (only for certain paths)
For some reason my error-page error-code404/error-code location/error/error.html/location /error-page which is defined in tomcat\conf\web.xml is being ignored when I'm trying to access the following path WebAppName/javax.faces.resource/anyFileName.jsf I know that its cause of the *javax.faces.resource* prefix and the *.jsf* suffix combined together... cause if I change one of them I do get the custom error page I do know that its not a common path to pick, but still I wonder how can I make it use my custom error-page b.t.w , I'm using *myfaces 2.0.11* I found one way to overcome it by using implementing custom filter and setting response.sendError(404 but Its not a good solution IMO , cause I need to use new File each time to check for existence and add some logic for converting the .jsf to xhtml or omitting .jsf before checking the .exists() for the file this is a code snippet: String path = ((HttpServletRequest) req).getServletPath(); if (((HttpServletRequest) req).getRequestURI().contains(javax.faces.resource) !new File(getFilterConfig().getServletContext().getRealPath(path)).exists()) { HttpServletResponse response = (HttpServletResponse) res; response.sendError(404, Cannot find + path); } else { chain.doFilter(req, res); } Is there any other better way to use the Custom error-page for path of the type WebAppName/javax.faces.resource/anyFileName.jsf Regards, Daniel.
Re: myfaces slow startup on GAE
, Leonardo Uribe 2012/5/23 lucio piccoli lu...@asteriski.com: hi leonardo thanks for the help but there was no difference in startup time. from the log the big time expense is scanning for faces-config.xml. org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig what other options are there to prevent file scanning? -lp On 22 May 2012 17:26, Leonardo Uribe lu4...@gmail.com wrote: Hi MyFaces provides some SPI interfaces that allow to provide web container specific code in cases like annotation scannig or when it tries to locate faces-config.xml or .taglib.xml files. But first of all, try to setup this web config param: org.apache.myfaces.annotation.SCAN_PACKAGES Indicate the packages where your managed beans are, separated by comma. Let us know if that solves your problem, or if you do some SPI code, it could be good to add it in myfaces core project in someway. regards, Leonardo Uribe 2012/5/22 lucio piccoli lu...@asteriski.com: the spring issue is exclusive to the myfaces startup. the myfaces startup seems to be spending its time doing a file scan for 'faces-config.xml' and other stuff. File access speed is known to be poor on GAE. so is there a way to config myfaces not to file scan? -lp On 22 May 2012 17:07, Daniel Reznick vedm...@gmail.com wrote: Before that, Know that Spring and JSF are known for their SLOW start up time on GAE (I think especially Sping) a short googling can show this , and maybe some tricks to speed it up (but it still will be slow...) On Tue, May 22, 2012 at 5:13 AM, lucio piccoli lu...@asteriski.com wrote: hi guys i am running myfaces 2.1.6 on appengine 1.6.4. the start up time is too long. according to my log 13 seconds of wall time. this 13 sec is killing my GAE startup time as it has a hardlimit. Q1. why is myfaces taking 12 seconds to load? Q2. how can i reduce the myfaces load time? the log snippet is below. the start of the log is once spring initiation is complete. INFO: Root WebApplicationContext: initialization completed in 9598 ms 22/05/2012 1::57:04 AM org.apache.myfaces.webapp.Jsp20FacesInitializer initContainerIntegration INFO: This application isn't running in a JSP 2.1 container. 22/05/2012 1:57:04 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getStandardFacesConfig INFO: Reading standard config META-INF/standard-faces-config.xml 22/05/2012 1:57:05 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getWebAppFacesConfig INFO: Reading config /WEB-INF/faces-config.xml 22/05/2012 1:57:08 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig INFO: Reading config : jar:file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/gmaps4jsf-core-1.1.4.jar!/META-INF/faces-config.xml 22/05/2012 1:57:09 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig INFO: Reading config : jar:file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/richfaces-components-ui-4.2.1.Final.jar!/META-INF/faces-config.xml 22/05/2012 1:57:12 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig INFO: Reading config : jar:file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/richfaces-core-impl-4.2.1.Final.jar!/META-INF/faces-config.xml 22/05/2012 1:57:12 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig INFO: Reading config : jar:file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/tomahawk20-1.1.11.jar!/META-INF/faces-config.xml 22/05/2012 1:57:12 AM org.apache.myfaces.config.LogMetaInfUtils logArtifact INFO: Artifact 'myfaces-api' was found in version '2.1.6' from path 'file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/myfaces-api-2.1.6.jar' 22/05/2012 1:57:12 AM org.apache.myfaces.config.LogMetaInfUtils logArtifact INFO: Artifact 'myfaces-impl' was found in version '2.1.6' from path 'file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/myfaces-impl-2.1.6.jar' 22/05/2012 1:57:12 AM org.apache.myfaces.config.LogMetaInfUtils logArtifact INFO: Artifact 'tomahawk20' was found in version '1.1.11' from path 'file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/tomahawk20-1.1.11
Re: myfaces slow startup on GAE
Before that, Know that Spring and JSF are known for their SLOW start up time on GAE (I think especially Sping) a short googling can show this , and maybe some tricks to speed it up (but it still will be slow...) On Tue, May 22, 2012 at 5:13 AM, lucio piccoli lu...@asteriski.com wrote: hi guys i am running myfaces 2.1.6 on appengine 1.6.4. the start up time is too long. according to my log 13 seconds of wall time. this 13 sec is killing my GAE startup time as it has a hardlimit. Q1. why is myfaces taking 12 seconds to load? Q2. how can i reduce the myfaces load time? the log snippet is below. the start of the log is once spring initiation is complete. INFO: Root WebApplicationContext: initialization completed in 9598 ms 22/05/2012 1::57:04 AM org.apache.myfaces.webapp.Jsp20FacesInitializer initContainerIntegration INFO: This application isn't running in a JSP 2.1 container. 22/05/2012 1:57:04 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getStandardFacesConfig INFO: Reading standard config META-INF/standard-faces-config.xml 22/05/2012 1:57:05 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getWebAppFacesConfig INFO: Reading config /WEB-INF/faces-config.xml 22/05/2012 1:57:08 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig INFO: Reading config : jar:file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/gmaps4jsf-core-1.1.4.jar!/META-INF/faces-config.xml 22/05/2012 1:57:09 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig INFO: Reading config : jar:file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/richfaces-components-ui-4.2.1.Final.jar!/META-INF/faces-config.xml 22/05/2012 1:57:12 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig INFO: Reading config : jar:file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/richfaces-core-impl-4.2.1.Final.jar!/META-INF/faces-config.xml 22/05/2012 1:57:12 AM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig INFO: Reading config : jar:file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/tomahawk20-1.1.11.jar!/META-INF/faces-config.xml 22/05/2012 1:57:12 AM org.apache.myfaces.config.LogMetaInfUtils logArtifact INFO: Artifact 'myfaces-api' was found in version '2.1.6' from path 'file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/myfaces-api-2.1.6.jar' 22/05/2012 1:57:12 AM org.apache.myfaces.config.LogMetaInfUtils logArtifact INFO: Artifact 'myfaces-impl' was found in version '2.1.6' from path 'file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/myfaces-impl-2.1.6.jar' 22/05/2012 1:57:12 AM org.apache.myfaces.config.LogMetaInfUtils logArtifact INFO: Artifact 'tomahawk20' was found in version '1.1.11' from path 'file:/C:/src/miiingle/venueportal/trunk/target/venueportal-1.0-SNAPSHOT/WEB-INF/lib/tomahawk20-1.1.11.jar' 22/05/2012 1:57:13 AM org.richfaces.resource.ResourceHandlerImpl init FINE: Instance of org.richfaces.resource.ResourceHandlerImpl resource handler created 22/05/2012 1:57:13 AM org.apache.myfaces.util.ExternalSpecifications isBeanValidationAvailable INFO: MyFaces Bean Validation support disabled 22/05/2012 1:57:15 AM net.sf.jsfcomp.onload.OnLoadPhaseListener init INFO: OnLoadPhaseListener created 22/05/2012 1:57:15 AM org.apache.myfaces.application.ApplicationImpl getProjectStage INFO: Couldn't discover the current project stage, using Production 22/05/2012 1:57:15 AM org.apache.myfaces.config.FacesConfigurator handleSerialFactory INFO: Serialization provider : class org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory 22/05/2012 1:57:15 AM org.apache.myfaces.config.annotation.DefaultLifecycleProviderFactory getLifecycleProvider INFO: Using LifecycleProvider org.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider -- regards -Lucio Piccoli Director -- www.asteriski.com
Re: h:outputScript is not being loaded when located in ui:include that is initially rendered=false
Forgot to add that after I click on the show button and the script was supposed to be loaded , it gets loaded if I click F5 / Ctrl + F5 / or hit Enter in the URL of the browser... Thanks again. On Wed, May 9, 2012 at 6:11 PM, Daniel Reznick vedm...@gmail.com wrote: Hi I'm trying to load some heavy js file only after a user have clicked on button so basically when user loads the main page there is a hidden page inside ui:include h:body h:form h:commandButton value=ClickMe action=#{myBean.callme()} f:ajax render=includeWrapper/f:ajax /h:commandButton h:panelGroup id=includeWrapper wrapper h:panelGroup rendered=#{myBean.show} ui:include src=/page2.xhtml/ui:include /h:panelGroup /h:panelGroup /h:form /h:body that hidden page got h:outputScript that should be rendered when user will click on the commandButton page2.xhtml looks like this ui:composition xmlns=http://www.w3.org/1999/xhtml; xmlns:ui= http://java.sun.com/jsf/facelets; xmlns:h=http://java.sun.com/jsf/html; xmlns:f= http://java.sun.com/jsf/core; xmlns:c=http://java.sun.com/jsp/jstl/core; #{myBean.show} h:outputScript library=js name=myscript.js rendered=#{myBean.show}/ Ww /ui:composition and my callme looks like this public void callme(){ show = !show; System.out.println(cl me\t+show); } This works perfectly in my mojarra sandbox , but for some reason it is not being loaded in my Myfaces 2.0.11 application I even tried the latest 2.1.8 snapshot Is there any web.xml configuration that I'm missing Thanks ahead, Daniel.
Re: h:outputScript is not being loaded when located in ui:include that is initially rendered=false
Ok , Thanks Opened... https://issues.apache.org/jira/browse/MYFACES-3546 On Thu, May 10, 2012 at 11:15 AM, Werner Punz werner.p...@gmail.com wrote: Hi, this looks like a bug to me, can you file a bugreport with an example on https://issues.apache.org/**jira/browse/MYFACEShttps://issues.apache.org/jira/browse/MYFACES, so that the fix will make it into the next release. Werner Am 10.05.12 08:05, schrieb Daniel Reznick: Forgot to add that after I click on the show button and the script was supposed to be loaded , it gets loaded if I click F5 / Ctrl + F5 / or hit Enter in the URL of the browser... Thanks again. On Wed, May 9, 2012 at 6:11 PM, Daniel Reznickvedm...@gmail.com wrote: Hi I'm trying to load some heavy js file only after a user have clicked on button so basically when user loads the main page there is a hidden page inside ui:include h:body h:form h:commandButton value=ClickMe action=#{myBean.callme()} f:ajax render=includeWrapper/f:**ajax /h:commandButton h:panelGroup id=includeWrapper wrapper h:panelGroup rendered=#{myBean.show} ui:include src=/page2.xhtml/ui:**include /h:panelGroup /h:panelGroup /h:form /h:body that hidden page goth:outputScript that should be rendered when user will click on the commandButton page2.xhtml looks like this ui:composition xmlns=http://www.w3.org/1999/**xhtmlhttp://www.w3.org/1999/xhtml xmlns:ui= http://java.sun.com/jsf/**facelets http://java.sun.com/jsf/facelets xmlns:h=http://java.sun.com/**jsf/htmlhttp://java.sun.com/jsf/html xmlns:f= http://java.sun.com/jsf/core; xmlns:c=http://java.sun.com/**jsp/jstl/corehttp://java.sun.com/jsp/jstl/core #{myBean.show} h:outputScript library=js name=myscript.js rendered=#{myBean.show}/ Ww /ui:composition and my callme looks like this public void callme(){ show = !show; System.out.println(**cl me\t+show); } This works perfectly in my mojarra sandbox , but for some reason it is not being loaded in my Myfaces 2.0.11 application I even tried the latest 2.1.8 snapshot Is there any web.xml configuration that I'm missing Thanks ahead, Daniel.
h:outputScript is not being loaded when located in ui:include that is initially rendered=false
Hi I'm trying to load some heavy js file only after a user have clicked on button so basically when user loads the main page there is a hidden page inside ui:include h:body h:form h:commandButton value=ClickMe action=#{myBean.callme()} f:ajax render=includeWrapper/f:ajax /h:commandButton h:panelGroup id=includeWrapper wrapper h:panelGroup rendered=#{myBean.show} ui:include src=/page2.xhtml/ui:include /h:panelGroup /h:panelGroup /h:form /h:body that hidden page got h:outputScript that should be rendered when user will click on the commandButton page2.xhtml looks like this ui:composition xmlns=http://www.w3.org/1999/xhtml; xmlns:ui= http://java.sun.com/jsf/facelets; xmlns:h=http://java.sun.com/jsf/html; xmlns:f= http://java.sun.com/jsf/core; xmlns:c=http://java.sun.com/jsp/jstl/core; #{myBean.show} h:outputScript library=js name=myscript.js rendered=#{myBean.show}/ Ww /ui:composition and my callme looks like this public void callme(){ show = !show; System.out.println(cl me\t+show); } This works perfectly in my mojarra sandbox , but for some reason it is not being loaded in my Myfaces 2.0.11 application I even tried the latest 2.1.8 snapshot Is there any web.xml configuration that I'm missing Thanks ahead, Daniel.
Re: c:forEach stopped to work after switching to 2.0.11 , (2.0.5 2.0.8 was working just fine)
Here the code snippet 'from time to time' : i mean that when user clicks some radio button i re render the h:panelGroup id=expenses_table_wrapper that holds the table , even when i dont specify the column ids explicitly and let the JSF do that, i still get the same duplicate id exception h:panelGroup id=expenses_table_wrapper h:form prependId=false id=expenses_form p:dataTable id=expenses_table value=#{expensesPage.expensesList} var=expense rendered=#{not empty expensesPage.expensesList} c:forEach items=#{expensesPage.unitsOfTime} var=unitOfTime p:column id=expenses_table_device_column#{expensesPage.fixStatisticsDateDate(unitOfTime)} sortBy=SomeValue f:facet name=header h:outputText value=#{unitOfTime}/ /f:facet h:outputText value=SomeValue/ /p:column /c:forEach /p:dataTable /h:form /h:panelGroup On Tue, Jan 17, 2012 at 10:31 AM, Milo van der Zee m...@vanderzee.orgwrote: Hello Daniel, some code snippets could be helpfull. What do you mean by 'from time to time'? Doe you use an ajax library to rerender the table or do you mean by complete page render? Do you need the id's on the columns? Can't you just let JSF assign id's? I know that c: tags work problamatic with the view tree because they are not an element in that tree. Often using ui:repeat works better. I don't know what is changed between 2.0.8 and 2.0.11. Might be that they now follow the specs better... MAG, Milo van der Zee On Tue, 2012-01-17 at 08:37 +0200, Daniel Reznick wrote: Hi Till now I was creating dynamic columns inside a dataTable using the c:forEach , I was assigning unique Ids to each column and from time to time was re-creating the table with different columns with no problem at all I was using the myfaces-api-2.0.5, myfaces-bundle-2.0.5 and the myfaces-impl-2.0.5 jars , yesterday I switched to 2.0.11 , and the c:forEach started to throw me errors , java.lang.IllegalStateException component with duplicate id and the id that was displayed was the id of the first column, so I guess for some reason it tries to create the same columns again and again and still remembers the old columns, so after seeing this error I downgraded to 2.0.8 , and the error was gone, so... Some thing went WRONG between 2.0.8 and 2.0.11, what could it be? How can I solve this issue , cause I need to use 2.0.11 version, Help will be very appreciated, Regards, Daniel.
Re: c:forEach stopped to work after switching to 2.0.11 , (2.0.5 2.0.8 was working just fine)
I'm aware of the dynamic columns features of primefaces, but they dont sopport sortby and filterby , so its useless , thanks anyway... On Tue, Jan 17, 2012 at 11:13 AM, Rudy De Busscher rdebussc...@gmail.comwrote: Hi Daniel, PrimeFaces has the dynamic columns features for p:dataTable Maybe you can have a look at that option to have a variable number of columns. regards Rudy -- Rudy De Busscher http://www.c4j.be On 17 January 2012 09:52, Daniel Reznick vedm...@gmail.com wrote: Here the code snippet 'from time to time' : i mean that when user clicks some radio button i re render the h:panelGroup id=expenses_table_wrapper that holds the table , even when i dont specify the column ids explicitly and let the JSF do that, i still get the same duplicate id exception h:panelGroup id=expenses_table_wrapper h:form prependId=false id=expenses_form p:dataTable id=expenses_table value=#{expensesPage.expensesList} var=expense rendered=#{not empty expensesPage.expensesList} c:forEach items=#{expensesPage.unitsOfTime} var=unitOfTime p:column id=expenses_table_device_column#{expensesPage.fixStatisticsDateDate(unitOfTime)} sortBy=SomeValue f:facet name=header h:outputText value=#{unitOfTime}/ /f:facet h:outputText value=SomeValue/ /p:column /c:forEach /p:dataTable /h:form /h:panelGroup On Tue, Jan 17, 2012 at 10:31 AM, Milo van der Zee m...@vanderzee.org wrote: Hello Daniel, some code snippets could be helpfull. What do you mean by 'from time to time'? Doe you use an ajax library to rerender the table or do you mean by complete page render? Do you need the id's on the columns? Can't you just let JSF assign id's? I know that c: tags work problamatic with the view tree because they are not an element in that tree. Often using ui:repeat works better. I don't know what is changed between 2.0.8 and 2.0.11. Might be that they now follow the specs better... MAG, Milo van der Zee On Tue, 2012-01-17 at 08:37 +0200, Daniel Reznick wrote: Hi Till now I was creating dynamic columns inside a dataTable using the c:forEach , I was assigning unique Ids to each column and from time to time was re-creating the table with different columns with no problem at all I was using the myfaces-api-2.0.5, myfaces-bundle-2.0.5 and the myfaces-impl-2.0.5 jars , yesterday I switched to 2.0.11 , and the c:forEach started to throw me errors , java.lang.IllegalStateException component with duplicate id and the id that was displayed was the id of the first column, so I guess for some reason it tries to create the same columns again and again and still remembers the old columns, so after seeing this error I downgraded to 2.0.8 , and the error was gone, so... Some thing went WRONG between 2.0.8 and 2.0.11, what could it be? How can I solve this issue , cause I need to use 2.0.11 version, Help will be very appreciated, Regards, Daniel.
Re: c:forEach stopped to work after switching to 2.0.11 , (2.0.5 2.0.8 was working just fine)
Just for the record, event when i remove the explicit generation of the id attribute, and let the myfaces generate the ids , i get the exact error , but this time the duplicated id that is being shown in the alert message (cause of the development mode set in the web.xml) , the duplicated id is being created by the myfaces and looks like j_id782346873642587. (something like that) , so its not cause of the id that I'm assigning explicitly On Tue, Jan 17, 2012 at 5:59 PM, Leonardo Uribe lu4...@gmail.com wrote: Hi I agree mixing build time and render time tags in that way could cause problems like the one described. I can confirm there was a change on the id generation, see: https://issues.apache.org/jira/browse/MYFACES-3329 https://issues.apache.org/jira/browse/MYFACES-3330 https://issues.apache.org/jira/browse/MYFACES-3331 By multiple reasons described on those issues, the change is valid and strongly necessary. The snippet provided reveals in that part an EL expression is used to calculate the id: p:column id=expenses_table_device_column#{expensesPage.fixStatisticsDateDate(unitOfTime)} sortBy=SomeValue Facelets algorithm uses internally other id (ComponentSupport.MARK_CREATED), It is probably the problem starts here. Maybe the id is changed in some part and does not match the component correctly like ComponentSupport.MARK_CREATED, causing the duplicate id exception. Anyway, there are other ways to do what you want, and use that snippet is not advisable. regards, Leonardo Uribe
c:forEach stopped to work after switching to 2.0.11 , (2.0.5 2.0.8 was working just fine)
Hi Till now I was creating dynamic columns inside a dataTable using the c:forEach , I was assigning unique Ids to each column and from time to time was re-creating the table with different columns with no problem at all I was using the myfaces-api-2.0.5, myfaces-bundle-2.0.5 and the myfaces-impl-2.0.5 jars , yesterday I switched to 2.0.11 , and the c:forEach started to throw me errors , java.lang.IllegalStateException component with duplicate id and the id that was displayed was the id of the first column, so I guess for some reason it tries to create the same columns again and again and still remembers the old columns, so after seeing this error I downgraded to 2.0.8 , and the error was gone, so... Some thing went WRONG between 2.0.8 and 2.0.11, what could it be? How can I solve this issue , cause I need to use 2.0.11 version, Help will be very appreciated, Regards, Daniel.