On 2/9/07, Dick Starr <[EMAIL PROTECTED]> wrote:
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?
Serendipity time ... this sounds somewhat like the problem Ingo mentioned earlier today, where he was getting an NPE from a converter being called on an expression where the destination property was a long. However, looking at your stack trace, the evidence is not clear ... in the middle it reports: javax.faces.el.EvaluationException: Cannot get value for expression '#{systemOperatorBean}' at org.apache.myfaces.el.ValueBindingImpl.getValue( ValueBindingImpl.java:402) which would normally imply an incorrect managed bean name or something. However, I could see how a nested problem with a converter might trigger this as well. Using non-String properties as the destination of a "#{param.foo}" evaluation seems to be the issue. If it's a string, no converter is necessary so it bypasses any potential problem there. Definitely need to do some further investigation here. 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