[ 
https://issues.apache.org/jira/browse/MYFACES-3078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13038337#comment-13038337
 ] 

Leonardo Uribe commented on MYFACES-3078:
-----------------------------------------

The patch still needs some work. I tried with jetty and this configuration:

  <context-param>
    <param-name>org.apache.myfaces.SUPPORT_JSP</param-name>
    <param-value>false</param-value>
  </context-param>
  <context-param>
    <param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
  </context-param>

and the following exception is thrown:

javax.faces.FacesException: java.lang.IllegalStateException: unknown scope 
defined: null
        at 
org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241)
        at 
org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156)
        at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:258)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
        at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
        at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
        at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: java.lang.IllegalStateException: unknown scope defined: null
        at 
org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:75)
        at 
org.apache.myfaces.el.convert.VariableResolverToELResolver.getValue(VariableResolverToELResolver.java:116)
        at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
        at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:86)
        at com.sun.el.parser.AstValue.getValue(AstValue.java:127)
        at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
        at 
org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85)
        at 
javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:243)
        at javax.faces.component.UIOutput.getValue(UIOutput.java:71)
        at javax.faces.component.UIInput.getValue(UIInput.java:142)
        at 
org.apache.myfaces.shared_impl.renderkit.RendererUtils.getValue(RendererUtils.java:343)
        at 
org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:291)
        at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInputBegin(HtmlTextRendererBase.java:169)
        at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:158)
        at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:75)
        at 
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:519)
        at 
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:540)
        at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:316)
        at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:151)
        at 
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:519)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:628)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:624)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:624)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:624)
        at 
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1329)
        at 
org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:264)
        at 
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:85)
        at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)

In theory the code on ApplicationImpl is not necessary, because 
Jsp21FacesInitializer.configureResolverForJSP and initContainerIntegration are 
skipped.

This optimization needs to be checked more carefully. I'll revert the "patch 
available" state to "unresolved", to indicate the patch is not complete and 
can't be applied as is in the code. Anyway, I attached another up to date 
patch, disabling jsp vdl too.

I don't like the part that just skip initContainerIntegration. The right thing 
to do is create another initializer and change the code on 
org.apache.myfaces.webapp.FacesInitializerFactory, to use it if jsp support is 
disabled. Inside that initContainerIntegration, do the ExpressionFactory stuff.

> performance: allow to disable JSP support
> -----------------------------------------
>
>                 Key: MYFACES-3078
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3078
>             Project: MyFaces Core
>          Issue Type: New Feature
>          Components: General
>    Affects Versions: 2.0.5-SNAPSHOT, 2.1.0-SNAPSHOT
>            Reporter: Martin Kočí
>            Assignee: Martin Kočí
>            Priority: Minor
>         Attachments: MYFACES-3078-core-2.patch, MYFACES-3078-shared-2.patch, 
> MYFACES-3078.patch
>
>
> Since JSF 2.0 JSP are deprecated. Allow:
> o.a.m.SUPPORT_JSP=false|true
> if this flag is false myfaces will not install FacesCompositeELResolver
> and will skip JSP initializer during startup
> see full discussion here:
> http://www.mail-archive.com/[email protected]/msg49177.html

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to