Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

IllegalArgumentException trouble with a depedent h:selectOneListbox

843844Jul 2 2009 — edited Jul 3 2009
I'm having the following exception in mi app
java.lang.IllegalArgumentException
	javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:127)
	javax.faces.component.UISelectOne.matchValue(UISelectOne.java:141)
	javax.faces.component.UISelectOne.validateValue(UISelectOne.java:114)
	javax.faces.component.UIInput.validate(UIInput.java:634)
	javax.faces.component.UIInput.executeValidate(UIInput.java:838)
	javax.faces.component.UIInput.processValidators(UIInput.java:412)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:904)
	javax.faces.component.UIForm.processValidators(UIForm.java:170)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:904)
	javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:342)
	com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:78)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
	org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
	org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
	org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
Im developing dependent selectOneListbox, the exception rises after the user selects the value for the first listbox. here is how the jsp looks like:
<h:outputText value="Ruta:" id="rutaOT"  />
							<h:selectOneListbox  value="#{BillBean.routeID}" size="1"  id="rutaList" validator="#{ValidadorBean.validate}" required="true" valueChangeListener="#{BillBean.routeListenerMethod}" onchange="this.form.submit()">
								<f:selectItems  value="#{GlobalData.selectRutas}" id="rutasListados" />
								<f:param value=""></f:param>
							</h:selectOneListbox>
							<h:outputText value="Cliente:" id="clienteOT"  />				
							<h:selectOneListbox  value="#{BillBean.selectedClient}" size="1"  id="clientList" validator="#{ValidadorBean.validate}" required="true">
								<f:selectItems  value="#{BillBean.clientList}" id="clientesListados" />
							</h:selectOneListbox>	
and here's how the Bean looks like
public class BillBean {
    
    public static final Logger logger = Logger.getLogger(BillBean.class);

	private Short routeID =-1;
	private List<SelectItem> clientList;
	private Short selectedClient;
	
	public BillBean() {
	    logger.debug("entro en el contructor del bean");
	    SelectItem si;
	    if(clientList==null){
		si = new SelectItem((Object)"9999","Seleccione un Cliente");
		clientList = new ArrayList<SelectItem>();
		clientList.add(si);
	    }
	}

	public void setRouteID(Short routeID){
	    this.routeID=routeID;
	}
	
	public Short getRouteID(){
	    return routeID;
	}
	
	public void setClientList(List<SelectItem> clientList){
	    logger.debug("entro aqui!!!!");
	    this.clientList=clientList;
	}
	
	public List<SelectItem> getClientList(){
	    return clientList;
	}
	
	public void setSelectedClient(Short selectedClient) {
	    this.selectedClient = selectedClient;
	}

	public Short getSelectedClient() {
	    return selectedClient;
	}
	
	public void routeListenerMethod( ValueChangeEvent e ){
	    Object value = e.getNewValue();
	    routeID = Short.parseShort(value.toString());
	    logger.debug("Valor de Route "+routeID);
	    fillClientList();
	    logger.debug("La lista contiene: !!! "+clientList.toString());
	  }
	
	public List<SelectItem> fillClientList(){
	    BillManager billManager = new BillManager(SQLConstant.MYSQL);
	    UserBean sessionUserBean = (UserBean) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("UserBean");
	    Short clientCompany = sessionUserBean.getCompany();
	    Short distributer = sessionUserBean.getDistributer();
	    System.out.println("Route a utilizar es :"+routeID);
	    try {
		this.clientList.addAll(billManager.clientsInRoute(clientCompany, distributer, routeID));
	    } catch (Exception e) {
	    	logger.error("Ocurrio exception en BillBean: ", e);
	    }
	    return this.clientList;
		
	}	
}
but when you select the value for the first listbox, never reaches the routeListenerMethod.

what i've read in others forums, the problems seems to be the SelectItems inside the clientList, but the bean's scope is the entire session, and still seems to be empty.

Does anyone know what my problem is? I'm kinda newbie in the JSF world so maybe it's something easy for you all.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 31 2009
Added on Jul 2 2009
3 comments
144 views