Hi All,

I didnot here any feedback from any MYFaces developer regarding to the below
MYFACES patch or code changes.I assume that the code changes are fine and go
ahead to implement.

Also It would be appreciated if any one can get a chance to review and give
feedback on below MYFACES Patch.

Thanks
Mohan R Siripi

On Mon, Jun 6, 2011 at 2:57 PM, Madhan Mohan <[email protected]> wrote:

> Hi,
>
> I am running an application in Geronimo 2.1.7 and that requires a valid
> scope, but what we see is java.lang.IllegalStateException during application
> startup
>
> Servlet.service() for servlet jsp  threw exception
> java.lang.IllegalStateException: unknown scope defined: null
>        at
> org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResol
> verImpl.java:71)
>        at
> org.apache.myfaces.el.convert.VariableResolverToELResolver.getValue(Vari
> ableResolverToELResolver.java:93)
>        at
> javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
> ---------------
> ---------------
> Servlet.service() for servlet jsp  threw exception
> java.lang.NullPointerException
>        at
> javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
>        at
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.access$3
> 01(FacesCompositeELResolver.java:46)
>        at
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver$4.invoke
> (FacesCompositeELResolver.java:108)
>        at
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.invoke(F
> acesCompositeELResolver.java:148)
>        at
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue
> (FacesCompositeELResolver.java:104)
>        at
> javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
>
> I have created a small debug application and tested the scenario to find
> the valid scopes.It looks to be the scopes are available for the application
> and only thing is some how the scope value getting as null before a call
> made to org.apache.myfaces.el.VariableResolverImpl.resolveVariable and it
> leads the above exception.
>
> 11:25:26,650 XXXX Thread[http-0.0.0.0-8463-1,5,main]: scope  after
> setScope() is JSP.
> ..
> ..
> 11:25:26,652 XXXX Thread[http-0.0.0.0-8463-1,5,main]: scope  after
> setScope() is Faces.
> ....
> 11:25:26,652 XXXX Thread[http-0.0.0.0-8463-1,5,main]: scope  before
> unsetScope() is Faces.
> ...
>
> the following is the code snippet where it sets and unsets the scope
> values.
> try
>        {
>            setScope(requestMap);
>            super.setValue(context, base, property, val);
>        }
>        finally
>        {
>            unsetScope(requestMap);
>        }
>
> So to fix the above issue i made changes to the following code snippet in
> the FacesCompositeELResolver to put back previous scope value for
> application availability
>
> try
>        {
>            prevScope = getScope(requestMap);
>            setScope(requestMap);
>            super.setValue(context, base, property, val);
>        }
>        finally
>        {
>            if( prevScope != null){
>               setScope(requestMap, prevScope);
>            }else{
>               unsetScope(requestMap);
>            }
>        }
>
> Can any one review the changes made to the following patch for the above
> issue and provide your comments.
>
> https://issues.apache.org/jira/browse/MYFACES-3166
>
> Thanks
> Mohan R Siripi
>
>

Reply via email to