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




Reply via email to