Hi,

I am using Myfaces 1.1.3, with Spring 2.0. When I try to reference a managed bean in my jsp files, I get a StringIndexOutOfBoundsException (String index out of range: -1) thrown. I cannot understand for the life of me why this is being thrown. It bubbles up to the top of the exception stack as a failure in setting a property: javax.faces.el.PropertyNotFoundException: _expression_: '#{FtpSitesPage.siteList}'. Below are some application details, any help would be greatly appreciated.

Regards,
Faisal

Here is my faces-config.xml for the managed bean. I use Springs delegating variable resolver for the managed property, however, I know that this isn't the problem, as the exception gets thrown even if I comment out the managed property part.
    <managed-bean>
        <managed-bean-name>FtpSitesPage</managed-bean-name>
        <managed-bean-class>
            com.warnerbros.mam.saw.jsf.page.FtpSitesPage
        </managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>ftpSiteDelegate</property-name>
            <value>>#{ftpSiteDelegate}</value>
        </managed-property>
    </managed-bean>

Here is the jsp page (ftpSites.jsp) where the exception is thrown:
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core " prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

<%
    String path = request.getContextPath ();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<f:view>
    <html>
        <head>
            <f:loadBundle
                basename="com.warnerbros.mam.saw.jsf.msg.MessageResources"
                var="bundle" />

            <title><h:outputText value="#{bundle.ftpSites_page_title}" />
            </title>

            <meta http-equiv="pragma" content="no-cache" />
            <meta http-equiv="cache-control" content="no-cache" />
            <meta http-equiv="expires" content="0" />

            <link rel="stylesheet" type="text/css"
                href="" />
            <link rel="stylesheet" type="text/css"
                href="" " />
        </head>

        <body>
            <div id="top"></div>

            <!-- #### Header #### -->
            <div id="header">
                <span class="headerTitle"><h:outputText
                        value="#{bundle.global_logo}" /> </span>
                <div class="menuBar">
                    <%@ include file="/menus/topnav.jsp"%>
                </div>
            </div>

            <div id="bodyText">
           
                <h:form id="ftpSitesListForm">                   
                    <h:outputText value="#{bundle.ftpSites_page_welcome}" style="font-family: tahoma, sans-serif; font-weight: bold;" />
                    <br />
                    <h:commandButton action="" value="#{ bundle.ftpSites_btn_new}" />
                    <br /><br />
                   
                    <h:dataTable value="#{FtpSitesPage.siteList}" var="v" border="0">                   
                        <h:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ftpSites_tbl_name_hdr}" style="text-decoration: underline" />
                            </f:facet>
                            <h:outputText value="#{v.siteName}" />
                        </h:column>

                        <h:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ftpSites_tbl_address_hdr}"
                                    style="text-decoration: underline" />
                            </f:facet>
                            <h:outputText value="#{v.siteUrl}" />
                        </h:column>
                               
                        <h:column>
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ftpSites_tbl_login_name_hdr}"
                                    style="text-decoration: underline" />
                            </f:facet>
                            <h:outputText value="#{v.loginName}" />
                        </h:column>
                       
                        <h:column>
                            <t:commandLink value="#{bundle.ftpSites_lnk_edit}" action="">                                <f:param name="ftpSiteId" value="#{v.siteId }"/>
                            </t:commandLink>
                        </h:column>
                    </h:dataTable>
                </h:form>
            </div>
        </body>
    </html>
</f:view>
 
Here is the full stack trace:
2006-08-08 11:34:47 ApplicationDispatcher[/saw] Servlet.service() for servlet jsp threw exception
j avax.faces.el.PropertyNotFoundException: _expression_: '#{FtpSitesPage.siteList}'
    at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:397)
    at javax.faces.component.UIData.getValue(UIData.java :1019)
    at javax.faces.component.UIData.createDataModel(UIData.java:785)
    at javax.faces.component.UIData.getDataModel(UIData.java:765)
    at javax.faces.component.UIData.getRowCount(UIData.java:191)
    at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:140)
    at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java :100)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
    at javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:480)
    at javax.faces.webapp.UIComponentTag.doEndTag (UIComponentTag.java:361)
    at org.apache.myfaces.shared_impl.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:54)
    at org.apache.jsp.file.ftp.ftpSites_jsp._jspx_meth_h_dataTable_0(ftpSites_jsp.java:727)
    at org.apache.jsp.file.ftp.ftpSites_jsp._jspx_meth_h_form_1(ftpSites_jsp.java:635)
    at org.apache.jsp.file.ftp.ftpSites_jsp._jspService(ftpSites_jsp.java:170)
    at org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:94)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:292)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java :704)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
    at org.apache.catalina.core.ApplicationDispatcher.forward (ApplicationDispatcher.java:312)
    at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:416)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView (JspViewHandlerImpl.java:234)
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java :144)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java :799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring (String.java:1444)
    at org.apache.myfaces.config.ManagedBeanBuilder.extractExpressions(ManagedBeanBuilder.java:402)
    at org.apache.myfaces.config.ManagedBeanBuilder.isInValidScope(ManagedBeanBuilder.java:208)
    at org.apache.myfaces.config.ManagedBeanBuilder.initializeProperties(ManagedBeanBuilder.java:167)
    at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:56)
    at org.apache.myfaces.el.VariableResolverImpl.resolveVariable (VariableResolverImpl.java:311)
    at org.springframework.web.jsf.DelegatingVariableResolver.resolveVariable(DelegatingVariableResolver.java:108)
    at org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable (LastVariableResolverInChain.java:42)
    at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:574)
    at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
    at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
    at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
    ... 56 more

2006-08-08 11:34:47 StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
javax.faces.FacesException: _expression_: '#{FtpSitesPage.siteList}'
    at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch (ServletExternalContextImpl.java:435)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:157)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java :186)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service( CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java :534)
Caused by: javax.faces.el.PropertyNotFoundException: _expression_: '#{FtpSitesPage.siteList}'
    at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:397)
    at javax.faces.component.UIData.getValue(UIData.java:1019)
    at javax.faces.component.UIData.createDataModel(UIData.java:785)
    at javax.faces.component.UIData.getDataModel(UIData.java:765)
    at javax.faces.component.UIData.getRowCount (UIData.java:191)
    at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:140)
    at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeChildren (HtmlTableRendererBase.java:100)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
    at javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:480)
    at javax.faces.webapp.UIComponentTag.doEndTag (UIComponentTag.java:361)
    at org.apache.myfaces.shared_impl.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:54)
    at org.apache.jsp.file.ftp.ftpSites_jsp._jspx_meth_h_dataTable_0(ftpSites_jsp.java:727)
    at org.apache.jsp.file.ftp.ftpSites_jsp._jspx_meth_h_form_1(ftpSites_jsp.java:635)
    at org.apache.jsp.file.ftp.ftpSites_jsp._jspService(ftpSites_jsp.java:170)
    at org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:94)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:292)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java :704)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
    at org.apache.catalina.core.ApplicationDispatcher.forward (ApplicationDispatcher.java:312)
    at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:416)
    ... 30 more
Caused by: java.lang.StringIndexOutOfBoundsException : String index out of range: -1
    at java.lang.String.substring(String.java:1444)
    at org.apache.myfaces.config.ManagedBeanBuilder.extractExpressions(ManagedBeanBuilder.java:402)
    at org.apache.myfaces.config.ManagedBeanBuilder.isInValidScope (ManagedBeanBuilder.java:208)
    at org.apache.myfaces.config.ManagedBeanBuilder.initializeProperties(ManagedBeanBuilder.java:167)
    at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java :56)
    at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:311)
    at org.springframework.web.jsf.DelegatingVariableResolver.resolveVariable(DelegatingVariableResolver.java:108)
    at org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(LastVariableResolverInChain.java:42)
    at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java :574)
    at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
    at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
    at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java :383)
    ... 56 more

Reply via email to