[jira] Commented: (TOMAHAWK-1529) ConcurrentModificationException when using t:selectManyPickList and h:selectOneMenu
[ https://issues.apache.org/jira/browse/TOMAHAWK-1529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12891983#action_12891983 ] Jan-Kees van Andel commented on TOMAHAWK-1529: -- I'm pretty sure it has nothing to do with MyFaces... I've seen issues like this one very often in the field. Most of the time the cause was a direct remove action on the collection (not remove() on the iterator) while iterating it. You're passing in a Transformer into CollectionUtils.collect(), somewhere in "com.utmb.web.beans.searchController.getsrch1revvals". I can't see the line number in the stack trace, but it should be there. I'm very curious what this Transformer looks like. > ConcurrentModificationException when using t:selectManyPickList and > h:selectOneMenu > --- > > Key: TOMAHAWK-1529 > URL: https://issues.apache.org/jira/browse/TOMAHAWK-1529 > Project: MyFaces Tomahawk > Issue Type: Bug >Affects Versions: 1.1.10-SNAPSHOT > Environment: Solaris 5.8, Java HotSpot(TM) Server VM (build > 1.5.0_05-b05, mixed mode) > Tomcat 6.0.26 running with Security Manager > MyFaces 1.1.7 >Reporter: suresh t > > I have a backend bean supporting jsf page. It has many components similar to > one shown below. where srch1vals is a ArrayList of SelectItem s >immediate="true" value="#{searchController.vSrch1}" > styleClass="selectOneMenu"> >value="#{searchController.srch1vals}" /> > > There is one other components selectManyPickList that has value > set to srch1revvals. srch1revvals clones srch1vals in the Get accesor using > CollectionUtils.collect() method. >size="5" value="#{searchController.selectedPicks}" > valueChangeListener="#{searchController.selectionChanged}" > rendered="#{searchController.searchvalsResults}"> >value="#{searchController.srch1revvals}" /> > > I am getting occasional ConcurrentModificationException as follows. > Jul 6, 2010 4:35:38 PM org.apache.catalina.core.ApplicationDispatcher invoke > SEVERE: Servlet.service() for servlet jsp threw exception > java.util.ConcurrentModificationException > at > java.util.AbstractList$Itr.checkForComodification(AbstractList.java:4 > 49) > at java.util.AbstractList$Itr.next(AbstractList.java:420) > at > org.apache.commons.collections.CollectionUtils.collect(CollectionUtil > s.java:631) > at > org.apache.commons.collections.CollectionUtils.collect(CollectionUtil > s.java:610) > at > org.apache.commons.collections.CollectionUtils.collect(CollectionUtil > s.java:575) > at com.utmb.web.beans.searchController.getsrch1revvals(Unknown Source) > at sun.reflect.GeneratedMethodAccessor780.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces > sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at > org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolv > erImpl.java:459) > at > org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverI > mpl.java:85) > at > org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELPars > erHelper.java:539) > at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) > at > org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java > :386) > at > javax.faces.component.UISelectItems.getValue(UISelectItems.java:108) > at > org.apache.myfaces.shared_tomahawk.util.SelectItemsIterator.hasNext(S > electItemsIterator.java:127) > at > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.internalGe > tSelectItemList(RendererUtils.java:462) > at > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.getSelectI > temList(RendererUtils.java:448) > at > org.apache.myfaces.custom.picklist.HtmlPicklistRenderer.encodeEnd(Htm > lPicklistRenderer.java:161) > at > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: > 775) > at > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChil > d(RendererUtils.java:431) > at > org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlGridRendererBas > e.renderChildren(HtmlGridRendererBase.java:229) > at > org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlGridRendererBas > e.encodeEnd(HtmlGridRendererBase.java:101) > at > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: > 775) > at > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChil > d
[jira] Commented: (TOMAHAWK-1529) ConcurrentModificationException when using t:selectManyPickList and h:selectOneMenu
[ https://issues.apache.org/jira/browse/TOMAHAWK-1529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12891964#action_12891964 ] Jakob Korherr commented on TOMAHAWK-1529: - I think the probem seems to be on your side, because the value of a is never changed by MyFaces. Do you change the Collection #{searchController.srch1vals} at some point in your app? This would explain the behavior... > ConcurrentModificationException when using t:selectManyPickList and > h:selectOneMenu > --- > > Key: TOMAHAWK-1529 > URL: https://issues.apache.org/jira/browse/TOMAHAWK-1529 > Project: MyFaces Tomahawk > Issue Type: Bug >Affects Versions: 1.1.10-SNAPSHOT > Environment: Solaris 5.8, Java HotSpot(TM) Server VM (build > 1.5.0_05-b05, mixed mode) > Tomcat 6.0.26 running with Security Manager > MyFaces 1.1.7 >Reporter: suresh t > > I have a backend bean supporting jsf page. It has many components similar to > one shown below. where srch1vals is a ArrayList of SelectItem s >immediate="true" value="#{searchController.vSrch1}" > styleClass="selectOneMenu"> >value="#{searchController.srch1vals}" /> > > There is one other components selectManyPickList that has value > set to srch1revvals. srch1revvals clones srch1vals in the Get accesor using > CollectionUtils.collect() method. >size="5" value="#{searchController.selectedPicks}" > valueChangeListener="#{searchController.selectionChanged}" > rendered="#{searchController.searchvalsResults}"> >value="#{searchController.srch1revvals}" /> > > I am getting occasional ConcurrentModificationException as follows. > Jul 6, 2010 4:35:38 PM org.apache.catalina.core.ApplicationDispatcher invoke > SEVERE: Servlet.service() for servlet jsp threw exception > java.util.ConcurrentModificationException > at > java.util.AbstractList$Itr.checkForComodification(AbstractList.java:4 > 49) > at java.util.AbstractList$Itr.next(AbstractList.java:420) > at > org.apache.commons.collections.CollectionUtils.collect(CollectionUtil > s.java:631) > at > org.apache.commons.collections.CollectionUtils.collect(CollectionUtil > s.java:610) > at > org.apache.commons.collections.CollectionUtils.collect(CollectionUtil > s.java:575) > at com.utmb.web.beans.searchController.getsrch1revvals(Unknown Source) > at sun.reflect.GeneratedMethodAccessor780.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces > sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at > org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolv > erImpl.java:459) > at > org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverI > mpl.java:85) > at > org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELPars > erHelper.java:539) > at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) > at > org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java > :386) > at > javax.faces.component.UISelectItems.getValue(UISelectItems.java:108) > at > org.apache.myfaces.shared_tomahawk.util.SelectItemsIterator.hasNext(S > electItemsIterator.java:127) > at > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.internalGe > tSelectItemList(RendererUtils.java:462) > at > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.getSelectI > temList(RendererUtils.java:448) > at > org.apache.myfaces.custom.picklist.HtmlPicklistRenderer.encodeEnd(Htm > lPicklistRenderer.java:161) > at > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: > 775) > at > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChil > d(RendererUtils.java:431) > at > org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlGridRendererBas > e.renderChildren(HtmlGridRendererBase.java:229) > at > org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlGridRendererBas > e.encodeEnd(HtmlGridRendererBase.java:101) > at > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: > 775) > at > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChil > d(RendererUtils.java:431) > at > org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlGridRendererBas > e.renderChildren(HtmlGridRendererBase.java:229) > at > org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlGridRendererBas > e.encodeEnd(HtmlGridRendererBas