Hi all,

I using myfaces 1.2.0 to create a custom component that consist of
standard components. My problem is that this custom component renders
ok but when I submit the form that contains it I get an
IndexOutOfBoundsException.

Can anyone please tell me what's causing this or what's the problem?

Here's the exception:

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
        at java.util.ArrayList.RangeCheck(ArrayList.java:546)
        at java.util.ArrayList.get(ArrayList.java:321)
        at 
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:740)
        at 
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:743)
        at 
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:743)
        at 
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspStateManagerImpl.java:300)
        at 
org.apache.myfaces.application.jsp.JspViewHandlerImpl.restoreView(JspViewHandlerImpl.java:354)
        at 
org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:85)
        at 
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
        at 
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
....

And here's the custom component code:

        public UIBooleanFieldset() {
                setConverter(new BooleanConverter());
                setRendererType(null);

                Application application = 
FacesContext.getCurrentInstance().getApplication();
                HtmlSelectOneRadio htmlSelectOneRadio = (HtmlSelectOneRadio)
application.createComponent(HtmlSelectOneRadio.COMPONENT_TYPE);

                htmlSelectOneRadio.setId(getId() + "_radios");
                ValueBinding radioBinding =
application.createValueBinding("#{persoonBean.sex}");
                htmlSelectOneRadio.setValueBinding("value", radioBinding);
                htmlSelectOneRadio.setLayout("pageDirection");

                UISelectItems selectItems = (UISelectItems)
application.createComponent(UISelectItems.COMPONENT_TYPE);
                ValueBinding selectBinding =
application.createValueBinding("#{persoonBean.sexItems}");
                selectItems.setValueBinding("value", selectBinding);

                htmlSelectOneRadio.getChildren().add(selectItems);
                getChildren().add(htmlSelectOneRadio);
        }


Thanks for any help!


-- 

regards,

Jeroen

Reply via email to