I don't think this should hold up the release.

I see the code that is having an issue. It's only in the demo, and it seems like EL code.

It's in PreferencesProxy.java. It errors trying to call ve.getValue(context.getELContext()).

     if (viewId.indexOf("/email/") >= 0)
       preferencesExpression = "#{email.preferences}";
     else if (viewId.indexOf("SkinDemo") >= 0)
       preferencesExpression = "#{sessionScope}";
     else if (viewId.indexOf("accessibilityProfileDemo") >= 0)
       preferencesExpression = "#{accProfileDemo}";

     if (preferencesExpression != null)
     {
       ValueExpression ve =
context.getApplication().getExpressionFactory().createValueExpression(preferencesExpression, Object.class);
       return ve.getValue(context.getELContext());
     }

In trinidad-config.xml, we have this:
<skin-family>#{prefs.proxy.skinFamily}</skin-family>
If I change it to be
<skin-family>#{sessionScope.skinFamily}</skin-family>
Then this bit of code doesn't get called, and it works fine (well, as long as all the other 'prefs.proxy' EL expressions that are used in trinidad-config.xml are fixed up the same way).

Oh, I just looked at the log of PreferencesProxy, and I see the code was changed from JSF1.1 to JSF1.2, so that's the difference:

It was:
     if (preferencesExpression != null)
     {
       ValueBinding vb =
context.getApplication().createValueBinding(preferencesExpression);
       return vb.getValue(context);
     }

and it is now:
     if (preferencesExpression != null)
     {
       ValueExpression ve =
context.getApplication().getExpressionFactory().createValueExpression(preferencesExpression, Object.class);
       return ve.getValue(context.getELContext());
     }

Anyone see anything obviously wrong? Maybe he is passing in the wrong context.

- Jeanne



Paul Spencer wrote, On 5/20/2008 12:24 PM PT:
Is this an issue that should be addressed before releasing 1.2.8?

Paul Spencer


Jeanne Waldman wrote:
I was just about to send out an email about this as well.

I created a project from the example war file and I see the same error. When I comment out the skin-family in faces-config.xml I get the same
error for the accessibilityMode. Both are EL bound to the same object:
<accessibility-mode>#{prefs.proxy.accessibilityMode}</accessibility-mode> <accessibility-profile>#{prefs.proxy.accessibilityProfile}</accessibility-profile>
 <skin-family>#{prefs.proxy.skinFamily}</skin-family>

The errors go away when I comment these out.

This worked when I did the same thing with the 1.2.7 demo war.

Jeanne

Paul Spencer wrote, On 5/16/2008 1:56 PM PT:
Testing the 1.2.8 proposed release.
The email demo and panelPageSkinDemo.jspx fail when using jstl-1.2.jar instead of jstl-1.1.2.jar in WEB-INF/lib in a tomcat 6.0.16 container

May 16, 2008 4:42:12 PM javax.faces.webapp._ErrorPageWriter handleException
SEVERE: An exception occurred
javax.el.PropertyNotFoundException: Property 'skinFamily' not found on type java.lang.String at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193) at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
        at javax.el.BeanELResolver.property(BeanELResolver.java:279)
        at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.access$301(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(FacesCompositeELResolver.java:148) at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:104)
        at org.apache.el.parser.AstValue.getValue(AstValue.java:114)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:68) at org.apache.myfaces.trinidadinternal.context.RequestContextImpl.getSkinFamily(RequestContextImpl.java:230) at org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderingContext._initializeSkin(CoreRenderingContext.java:510) at org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderingContext.<init>(CoreRenderingContext.java:85) at org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit.encodeBegin(CoreRenderKit.java:481) at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:166) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:238) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:195) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:138) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.myfaces.trinidaddemo.webapp.RedirectFilter.doFilter(RedirectFilter.java:97) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:595)

Paul Spencer




Reply via email to