1

I am getting below exception during ajax call on selectOneRadio button change.

I am using primefaces 3.3.1 and JSF 2.0

Exception:

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(String.java:1937)
    at com.sun.faces.renderkit.ServerSideStateHelper.getState(ServerSideStateHelper.java:263)
    at com.sun.faces.renderkit.ResponseStateManagerImpl.getState(ResponseStateManagerImpl.java:97)
    at com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:217)
    at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:177)
    at com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:119)
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:438)
    at com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:144)
    at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:182)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)

My code is as below:

                <h:panelGrid columns="3" style="align:center">
                <h:outputText value="#{msg.accountCategory}" />
                <p:spacer width="10px" />
                <p:selectOneRadio id="singleJointAccountRadioId"
                    layout="horizontal"
                    value="#{captureAccountDetailBackingBean.accountCategory}">
                    <f:selectItems
                        value="#{captureAccountDetailBackingBean.accountcategoryList}">
                    </f:selectItems>
                    <p:ajax process="@this" update="secondAccountId" />
                </p:selectOneRadio>
            </h:panelGrid>


                <h:panelGroup id="secondAccountId">
                    <h:panelGrid id="secondAccountHolderId" columns="2"
                        styleClass="float-left"
                        rendered="#{captureAccountDetailBackingBean.accountCategory eq 'Joint'}">
                        <p:graphicImage
                            value="/com/cas/pages/common/images/person_icon.jpg" />
                        <h:outputText value="#{msg.secondAccountHolder}" />

                        <h:panelGrid columns="2">
                            <h:outputText value="#{msg.nameofPerson}"
                                style="font-size:15px;" />
                            <span style="color: red;">*</span>
                        </h:panelGrid>
                        <p:inputText
                            value="#{captureAccountDetailBackingBean.accountHolder2.personName}"
                            styleClass="inputText-style" size="25" required="true" />

                        <h:panelGrid columns="2">
                            <p:selectOneRadio id="fatherHusbandRadioButtonId2"
                                layout="horizontal"
                                value="#{captureAccountDetailBackingBean.accountHolder2.personHusbandOrFatherID}">
                                <f:selectItems
                                    value="#{captureAccountDetailBackingBean.holderRelationList}"></f:selectItems>
                            </p:selectOneRadio>
                            <span style="color: red;">*</span>
                        </h:panelGrid>
                        <p:inputText
                            value="#{captureAccountDetailBackingBean.accountHolder2.relativeName}"
                            styleClass="inputText-style" size="25" required="true" />

                        <h:panelGrid columns="2">
                            <h:outputText value="#{msg.address}" />
                            <span style="color: red;">*</span>
                        </h:panelGrid>
                        <p:inputTextarea
                            value="#{captureAccountDetailBackingBean.accountHolder2.personAddress}"
                            rows="3" autoResize="false" styleClass="inputText-style"
                            size="25" required="true" />

                        <h:panelGrid columns="2">
                            <h:outputText value="#{msg.dateOfBirth}" />
                            <span style="color: red;">*</span>
                        </h:panelGrid>
                        <p:calendar
                            value="#{captureAccountDetailBackingBean.accountHolder2.personDOB}"
                            navigator="true" showOn="button" size="6"
                            styleClass="inputText-style" required="true" />

                        <h:panelGrid columns="2">
                            <h:outputText value="#{msg.age}" />
                            <span style="color: red;">*</span>
                        </h:panelGrid>
                        <p:inputText
                            value="#{captureAccountDetailBackingBean.accountHolder2.personAge}"
                            size="2" styleClass="inputText-style" required="true" />

                        <h:panelGrid columns="2">
                            <h:outputText value="#{msg.pancardNumber}" />
                            <span style="color: red;">*</span>
                        </h:panelGrid>
                        <p:inputText
                            value="#{captureAccountDetailBackingBean.accountHolder2.personPanNo}"
                            size="15" styleClass="inputText-style" required="true" />

                        <h:panelGrid columns="2">
                            <h:outputText value="#{msg.mobileNumber}" />
                            <span style="color: red;">*</span>
                        </h:panelGrid>
                        <p:inputText
                            value="#{captureAccountDetailBackingBean.accountHolder2.personMobileNo}"
                            size="15" styleClass="inputText-style" required="true" />

                    </h:panelGrid>
                </h:panelGroup>
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
Kumar
  • 63
  • 1
  • 1
  • 5
  • 1
    It's kind of funny to see 2 questions about an almost identical exception popping up within the same hour, while I haven't seen this exception in months/years. Here's another victim: http://stackoverflow.com/questions/14222516/error-with-view-state-with-jsf2 – BalusC Jan 08 '13 at 20:11
  • 1
    Can you please minimize the provided code into SSCCE flavor, so that we (and you!) could reproduce exactly the same problem by just copypasting the provided XHTML and Java code unmodified into a completely blank project with everything set to defaults (unless otherwise mentioned). The provided code contains namely extremely al lot of noise. For instance, is it absolutely necessary to have all those input fields in order to reproduce the problem? Is it absolutely necessary to have all those `` in order to reproduce the problem? Etc. Keep it as small as possible. – BalusC Jan 08 '13 at 20:13
  • The relevant Java code (backing bean, not the whole bean) would be useful.. hint, hint, wink, wink ;-) – siebz0r Jan 08 '13 at 21:49
  • Don't know what to say.. I was not using URL forwading, because of this it was giving above exception(on change on select radio button). Used URL redirection and there was no exception. Any explanation on this??? – Kumar Jan 10 '13 at 19:06

0 Answers0