I am using the shale-framework-20070207 snapshot with tiles.
I have a managed bean systemOperatorBean with an int property named
"searchPageSize". I have another bean named "systemOperatorMnt" which has
property operatorBean with value "#{systemOperatorBean}".
I can create and update records using bean systemOperatorMnt when I enter int
values for the searchPageSize property. This tells me I have a perfectly good
bean with a good corresponding jsp page.
However, I get a npe if I initialize searchPageSize in systemOperatorBean. What
stumps me is that I can initialize other String properties in
systemOperatorBean just fine. Any ideas anyone?
Thanks in advance,
Dick Starr
Details follow:
Managed beans:
...
<!-- TODO Why can I initialize name (a String) but get a npe
when I try to initialize searchPageSize (an int)? -->
<managed-bean>
<managed-bean-name>systemOperatorBean</managed-bean-name>
<managed-bean-class>com.starrcs.system.OperatorBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>name</property-name>
<value>test1</value>
</managed-property>
<managed-property>
<property-name>searchPageSize</property-name>
<value>15</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>systemOperatorMnt</managed-bean-name>
<managed-bean-class>com.starrcs.system.OperatorMnt</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>operatorBean</property-name>
<value>#{systemOperatorBean}</value>
</managed-property>
<managed-property>
<property-name>operatorBean1</property-name>
<value>#{systemOperatorBean}</value>
</managed-property>
<managed-property>
<property-name>operatorListBean</property-name>
<value>#{systemOperatorListBean}</value>
</managed-property>
<managed-property>
<property-name>searchBean</property-name>
<value>#{commonSearch}</value>
</managed-property>
</managed-bean>
jsp:
...
<t:saveState id="operatorBeanSS" value="#{systemOperatorMnt.operatorBean}"/>
<t:saveState id="operatorBean1SS" value="#{systemOperatorMnt.operatorBean1}"/>
<h:form id="operatorMnt">
...
<h:outputLabel for="name">
<h:outputText value="#{msg['app.Name']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="name" maxlength="48" required="true" size="36"
value="#{systemOperatorMnt.operatorBean.name}">
<f:validateLength minimum="4" maximum="48"/>
</h:inputText>
<h:message for="name" styleClass="starraMsgError"/>
</h:panelGroup>
...
<h:outputLabel for="searchPageSize">
<h:outputText value="#{msg['app.Search.page.size']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="searchPageSize" maxlength="2" required="true" size="2"
value="#{systemOperatorMnt.operatorBean.searchPageSize}">
<f:validateLongRange maximum="99" minimum="5"/>
</h:inputText>
<h:message for="searchPageSize" styleClass="starraMsgError"/>
</h:panelGroup>
...
trace:
2007-02-09 12:46:39,729 - ERROR
org.apache.myfaces.lifecycle.PhaseListenerManager - Exception in PhaseListener
RESTORE_VIEW(1) afterPhase
java.lang.NullPointerException
at
org.apache.myfaces.renderkit.html.util.AutoScrollPhaseListener.afterPhase(AutoScrollPhaseListener.java:52)
at
org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:89)
at
org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.java:181)
at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:66)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:267)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
2007-02-09 12:46:39,790 - ERROR
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/starraShale].[faces]
- Servlet.service() for servlet faces threw exception
javax.faces.el.EvaluationException: Cannot get value for expression
'#{systemOperatorBean}'
at
org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:402)
at
org.apache.shale.tiger.faces.VariableResolverImpl.property(VariableResolverImpl.java:605)
at
org.apache.shale.tiger.faces.VariableResolverImpl.create(VariableResolverImpl.java:250)
at
org.apache.shale.tiger.faces.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:194)
at
org.apache.shale.faces.ShaleVariableResolver.resolveVariable(ShaleVariableResolver.java:157)
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.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:455)
at
org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:248)
at
org.apache.myfaces.custom.savestate.UISaveState.restoreState(UISaveState.java:77)
at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:728)
at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:719)
at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreComponentState(JspStateManagerImpl.java:221)
at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspStateManagerImpl.java:287)
at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.restoreView(JspViewHandlerImpl.java:255)
at
org.apache.shale.tiles.TilesViewHandler.restoreView(TilesViewHandler.java:230)
at
org.apache.shale.validator.faces.ValidatorViewHandler.restoreView(ValidatorViewHandler.java:136)
at
org.apache.shale.view.faces.ViewViewHandler.restoreView(ViewViewHandler.java:160)
at
org.apache.shale.tiles.TilesViewHandler.restoreView(TilesViewHandler.java:230)
at
org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.java:141)
at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:66)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.shale.application.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:267)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at
org.apache.shale.tiger.faces.VariableResolverImpl.property(VariableResolverImpl.java:620)
at
org.apache.shale.tiger.faces.VariableResolverImpl.create(VariableResolverImpl.java:250)
at
org.apache.shale.tiger.faces.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:194)
at
org.apache.shale.faces.ShaleVariableResolver.resolveVariable(ShaleVariableResolver.java:157)
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.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
... 42 more