JSF, quatro selectOneMenu dentro do mesmo form. Erro: java.util.NoSuchElementException

Olá a todos, depois de muita pesquisa, inclusive aqui no GUJ ainda não consegui resolver o reRender.
Segue a situação:

Tenho as tabelas:

Fabricante Chassi
Modelo Chassi

Fabricante Carroceria
Modelo Carroceria

Dai tem 4 selectOneMenu: Ambos estão dentro do mesmo form, porém separados por rich:tabPanel.


						<h:outputLabel value="Fab.Chassi:" for="somFabChassiSelect"
							id="oplChassi" />
						<h:selectOneMenu id="somFabChassiSelect"
							value="#{veiculoManaged.fabChassiSelecionado}"
							valueChangeListener="#{veiculoManaged.filtraListaModeloChassi}">
							<f:selectItem itemLabel="Selecione Fabricante Chassi..." />
							<f:selectItems
								value="#{fabricanteChassiManaged.fabricanteChassiSelect}" />
							<a4j:support event="onchange" reRender="somModeloChassiSelect"
								requestDelay="25" eventsQueue="settingsQueue"
								similarityGroupingId="settings" />
						</h:selectOneMenu>

						<h:outputLabel value="Modelo Chassi:" for="somModeloChassiSelect"
							id="oplModChassi" />
						<h:selectOneMenu id="somModeloChassiSelect"
							value="#{veiculoManaged.modChassiSelecionado}">
							<f:selectItem itemLabel="Selecione Modelo Chassi..." />
							<f:selectItems value="#{veiculoManaged.listaModeloChassi}" />
						</h:selectOneMenu>

e

						<h:outputLabel value="Fab.Carroceria:" for="somFabCarSelect"
							id="oplFabCarSelect" />
						<h:selectOneMenu id="somFabCarSelect"
							value="#{veiculoManaged.fabCarroceriaSelecionado}"
							valueChangeListener="#{veiculoManaged.filtraListaModeloCarroceria}">
							<f:selectItem itemLabel="Selecione Fabricante Carroceria..." />
							<f:selectItems
								value="#{fabricanteCarroceriaManaged.fabricanteCarroceriaSelect}" />
							<a4j:support event="onchange" reRender="somModelCarSelect"
								requestDelay="25" eventsQueue="settingsQueue"
								similarityGroupingId="settings" />
						</h:selectOneMenu>

						<h:outputLabel value="Modelo Carroceria:" for="somModelCarSelect"
							id="oplModelCarSelect" />
						<h:selectOneMenu id="somModelCarSelect"
							value="#{veiculoManaged.modCarroceriaSelecionado}">
							<f:selectItem itemLabel="Selecione Modelo Carroceria..." />
							<f:selectItems value="#{veiculoManaged.listaModeloCarroceria}" />
						</h:selectOneMenu>

e o bean:


        ...
	private List<SelectItem> listaModeloChassi;
	private List<SelectItem> listaModeloCarroceria;

        public VeiculoManaged()  {
                ...
		this.listaModeloChassi = new ArrayList<SelectItem>();
		this.listaModeloCarroceria = new ArrayList<SelectItem>();
                ...
        }

        ...

	public void setListaModeloChassi(List<SelectItem> listaModeloChassi) {
		this.listaModeloChassi = listaModeloChassi;
	}

	public List<SelectItem> getListaModeloChassi() {
		return listaModeloChassi;
	}


        ...

	public void filtraListaModeloChassi(ValueChangeEvent event) {

		this.listaModeloChassi.clear();
		try {
			String id_fabChassi = (String) event.getNewValue();
			if (id_fabChassi != null) {
				Integer id_temp = new Integer(id_fabChassi);
				for (ModeloChassi modeloChassi : mcfr.getEJB()
						.findByFabricante(id_temp)) {
					this.listaModeloChassi.add(new SelectItem(modeloChassi
							.getId().toString(), modeloChassi.getDescricao()));
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
 ...

	public List<SelectItem> getListaModeloCarroceria() {
		return listaModeloCarroceria;
	}

	public void setListaModeloCarroceria(List<SelectItem> listaModeloCarroceria) {
		this.listaModeloCarroceria = listaModeloCarroceria;
	}


 ...
	public void filtraListaModeloCarroceria(ValueChangeEvent event) {

		this.listaModeloCarroceria.clear();
		try {
			String id_fabCarroceria = (String) event.getNewValue();
			if (id_fabCarroceria != null) {
				Integer id_temp = new Integer(id_fabCarroceria);
				for (ModeloCarroceria modeloCarroceria : mrfr.getEJB()
						.findByFabricante(id_temp)) {
					this.listaModeloCarroceria.add(new SelectItem(
							modeloCarroceria.getId().toString(),
							modeloCarroceria.getDescricao()));
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

Erro:

15:38:48,992 WARNING [lifecycle] java.util.NoSuchElementException
javax.faces.FacesException: java.util.NoSuchElementException
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:714)
	at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
	at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:226)
	at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:463)
	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.util.NoSuchElementException
	at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:130)
	at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:157)
	at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:61)
	at javax.faces.component.SelectUtils.matchValue(SelectUtils.java:82)
	at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:144)
	at javax.faces.component.UIInput.validate(UIInput.java:875)
	at javax.faces.component.UIInput.executeValidate(UIInput.java:1072)
	at javax.faces.component.UIInput.processValidators(UIInput.java:672)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at org.richfaces.component.UISwitchablePanel.processValidators(UISwitchablePanel.java:218)
	at org.ajax4jsf.component.UIAjaxForm.processValidators(UIAjaxForm.java:82)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIInput.processValidators(UIInput.java:670)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at org.ajax4jsf.component.UIAjaxRegion.processValidators(UIAjaxRegion.java:121)
	at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:447)
	at org.ajax4jsf.component.ContextCallbackWrapper.invokeContextCallback(ContextCallbackWrapper.java:44)
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:711)
	... 38 more
15:38:48,992 SEVERE [lifecycle] JSF1054: (Phase ID: PROCESS_VALIDATIONS 3, View ID: /sistema/veiculo.jsp) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@1a98cca]
15:38:48,992 ERROR [BaseXMLFilter] Exception in the filter chain
javax.servlet.ServletException: java.util.NoSuchElementException
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.FacesException: java.util.NoSuchElementException
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:714)
	at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
	at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:226)
	at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:463)
	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
	... 29 more
Caused by: java.util.NoSuchElementException
	at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:130)
	at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:157)
	at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:61)
	at javax.faces.component.SelectUtils.matchValue(SelectUtils.java:82)
	at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:144)
	at javax.faces.component.UIInput.validate(UIInput.java:875)
	at javax.faces.component.UIInput.executeValidate(UIInput.java:1072)
	at javax.faces.component.UIInput.processValidators(UIInput.java:672)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at org.richfaces.component.UISwitchablePanel.processValidators(UISwitchablePanel.java:218)
	at org.ajax4jsf.component.UIAjaxForm.processValidators(UIAjaxForm.java:82)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIInput.processValidators(UIInput.java:670)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at org.ajax4jsf.component.UIAjaxRegion.processValidators(UIAjaxRegion.java:121)
	at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:447)
	at org.ajax4jsf.component.ContextCallbackWrapper.invokeContextCallback(ContextCallbackWrapper.java:44)
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:711)
	... 38 more
15:38:48,992 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
java.util.NoSuchElementException
	at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:130)
	at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:157)
	at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:61)
	at javax.faces.component.SelectUtils.matchValue(SelectUtils.java:82)
	at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:144)
	at javax.faces.component.UIInput.validate(UIInput.java:875)
	at javax.faces.component.UIInput.executeValidate(UIInput.java:1072)
	at javax.faces.component.UIInput.processValidators(UIInput.java:672)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at org.richfaces.component.UISwitchablePanel.processValidators(UISwitchablePanel.java:218)
	at org.ajax4jsf.component.UIAjaxForm.processValidators(UIAjaxForm.java:82)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at javax.faces.component.UIInput.processValidators(UIInput.java:670)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1058)
	at org.ajax4jsf.component.UIAjaxRegion.processValidators(UIAjaxRegion.java:121)
	at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:447)
	at org.ajax4jsf.component.ContextCallbackWrapper.invokeContextCallback(ContextCallbackWrapper.java:44)
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:711)
	at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
	at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
	at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:226)
	at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:463)
	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)

Ocorre que quando entro no form e seleciono o primeira vez, qualquer um dos Fabricantes, o sistema preenche corretamente o segundo combo.
Porém quando mudo ou passo para outro combo de Fabricante ele da erro:

java.util.NoSuchElementException

Agradeço qualquer ajuda.

Att.
Júnior Carvalho

Viva,

Estou exactamente com o mesmo problema, você conseguiu resolver?

Obrigado
Paulo Caeiro

Estou com o mesmo problema. Tenho 4 listas na mesma página. Ao chegar na terceira lista o problema ocorre, apenas na primeira execução. Alguém conseguiu resolver?

Você esta acessando dois Managed Bean: fabricanteCarroceriaManaged e veiculoManaged
Poderia postar o código dos dois?