You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Stefan Betermieux <st...@fernuni-hagen.de> on 2005/10/10 17:58:28 UTC

AliasBean Exception in restoreView

Hi,

I get an exception while using an aliasBean in the restoreView phase. A normal
phase looks like this:

 DEBUG http-8080-Processor23 org.apache.myfaces.lifecycle.LifecycleImpl -
entering restoreView in org.apache.myfaces.lifecycle.LifecycleImpl
 DEBUG http-8080-Processor23
org.apache.myfaces.application.jsp.JspStateManagerImpl - Tree structure
restored from server session
 DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.AliasBean -
restoreState
 DEBUG http-8080-Processor23 org.apache.myfaces.el.VariableResolverImpl -
Variable 'userManagementServiceTarget' could not be resolved.
 DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.Alias -
makeAlias: #{administratorBean} = #{holder}
 DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.Alias -
removeAlias: #{administratorBean} != #{holder}
 DEBUG http-8080-Processor23 org.apache.myfaces.lifecycle.LifecycleImpl -
exiting restoreView in org.apache.myfaces.lifecycle.LifecycleImpl

But in some cases (mostly when returning to the same page again) I get the
following exception:

DEBUG http-8080-Processor23 org.apache.myfaces.lifecycle.LifecycleImpl -
entering restoreView in org.apache.myfaces.lifecycle.LifecycleImpl
 DEBUG http-8080-Processor23
org.apache.myfaces.application.jsp.JspStateManagerImpl - Tree structure
restored from server session
 DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.AliasBean -
restoreState
 DEBUG http-8080-Processor23 org.apache.myfaces.el.VariableResolverImpl -
Variable 'userManagementServiceTarget' could not be resolved.
 DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.Alias -
makeAlias: #{administratorBean} = #{holder}
 DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.Alias -
removeAlias: #{administratorBean} != #{holder}
 DEBUG http-8080-Processor23 org.apache.myfaces.el.VariableResolverImpl -
Variable 'holder' could not be resolved.
 DEBUG http-8080-Processor23 org.apache.myfaces.el.VariableResolverImpl -
Variable 'holder' could not be resolved.
 ERROR http-8080-Processor23 StandardWrapper[/Lerntagebuch:Faces Servlet] -
Servlet.service() for servlet Faces Servlet threw exception
 javax.faces.el.PropertyNotFoundException: Base is null: holder
        at
org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:457)
        at
org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:242)
        at
org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:396)
        at
org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:404)
        at
org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:404)
        at
org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:404)
        at
org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.java:157)
        at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:66)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:94)


It looks to me as if someone is accessing the holder bean outside the aliasBean
scope. How can I get hands on the culprit? In my jsf pages, I am just accessing
the holder bean inside the aliasBean tags.

TIA,

Stefan

Re: AliasBean Exception in restoreView

Posted by Mathias Brökelmann <mb...@googlemail.com>.
It took some time to figure out what you are doing:
I would guess you use an aliased bean (through the var attribute in a
datatable or the aliasbean component) in a component binding. This
will not work. The component binding is out of scope for the aliased
value.

2005/10/10, Stefan Betermieux <st...@fernuni-hagen.de>:
> Hi,
>
> I get an exception while using an aliasBean in the restoreView phase. A normal
> phase looks like this:
>
>  DEBUG http-8080-Processor23 org.apache.myfaces.lifecycle.LifecycleImpl -
> entering restoreView in org.apache.myfaces.lifecycle.LifecycleImpl
>  DEBUG http-8080-Processor23
> org.apache.myfaces.application.jsp.JspStateManagerImpl - Tree structure
> restored from server session
>  DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.AliasBean -
> restoreState
>  DEBUG http-8080-Processor23 org.apache.myfaces.el.VariableResolverImpl -
> Variable 'userManagementServiceTarget' could not be resolved.
>  DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.Alias -
> makeAlias: #{administratorBean} = #{holder}
>  DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.Alias -
> removeAlias: #{administratorBean} != #{holder}
>  DEBUG http-8080-Processor23 org.apache.myfaces.lifecycle.LifecycleImpl -
> exiting restoreView in org.apache.myfaces.lifecycle.LifecycleImpl
>
> But in some cases (mostly when returning to the same page again) I get the
> following exception:
>
> DEBUG http-8080-Processor23 org.apache.myfaces.lifecycle.LifecycleImpl -
> entering restoreView in org.apache.myfaces.lifecycle.LifecycleImpl
>  DEBUG http-8080-Processor23
> org.apache.myfaces.application.jsp.JspStateManagerImpl - Tree structure
> restored from server session
>  DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.AliasBean -
> restoreState
>  DEBUG http-8080-Processor23 org.apache.myfaces.el.VariableResolverImpl -
> Variable 'userManagementServiceTarget' could not be resolved.
>  DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.Alias -
> makeAlias: #{administratorBean} = #{holder}
>  DEBUG http-8080-Processor23 org.apache.myfaces.custom.aliasbean.Alias -
> removeAlias: #{administratorBean} != #{holder}
>  DEBUG http-8080-Processor23 org.apache.myfaces.el.VariableResolverImpl -
> Variable 'holder' could not be resolved.
>  DEBUG http-8080-Processor23 org.apache.myfaces.el.VariableResolverImpl -
> Variable 'holder' could not be resolved.
>  ERROR http-8080-Processor23 StandardWrapper[/Lerntagebuch:Faces Servlet] -
> Servlet.service() for servlet Faces Servlet threw exception
>  javax.faces.el.PropertyNotFoundException: Base is null: holder
>         at
> org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:457)
>         at
> org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:242)
>         at
> org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:396)
>         at
> org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:404)
>         at
> org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:404)
>         at
> org.apache.myfaces.lifecycle.LifecycleImpl.recursivelyHandleComponentReferencesAndSetValid(LifecycleImpl.java:404)
>         at
> org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.java:157)
>         at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:66)
>         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:94)
>
>
> It looks to me as if someone is accessing the holder bean outside the aliasBean
> scope. How can I get hands on the culprit? In my jsf pages, I am just accessing
> the holder bean inside the aliasBean tags.
>
> TIA,
>
> Stefan
>


--
Mathias