[ 
https://issues.apache.org/jira/browse/MYFACES-2873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Leonardo Uribe reopened MYFACES-2873:
-------------------------------------


Reported on users list this exception (using 1.2.10)


After changing the MyFaces Core Jar's from version 1.2.9 to version 1.2.10,
I am getting the following NullPointerException:

INFO: Server startup in 1352 ms
Mar 2, 2011 8:57:08 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
       at org.apache.myfaces.el.unified.ResolverBuilderBase.sortELResolvers(
ResolverBuilderBase.java:114)
       at org.apache.myfaces.el.unified.ResolverBuilderForFaces.build(
ResolverBuilderForFaces.java:63)
       at org.apache.myfaces.application.ApplicationImpl.createFacesResolver
(ApplicationImpl.java:189)
       at org.apache.myfaces.application.ApplicationImpl.getELResolver(
ApplicationImpl.java:181)
       at org.apache.myfaces.trinidadinternal.config.LazyValueExpression
$MockELContext.<init>(LazyValueExpression.java:194)
       at
org.apache.myfaces.trinidadinternal.config.LazyValueExpression._getELContext
(
LazyValueExpression.java:143)
       at
org.apache.myfaces.trinidadinternal.config.LazyValueExpression._createValueExpressionFromApplication
(
LazyValueExpression.java:176)
       at
org.apache.myfaces.trinidadinternal.config.LazyValueExpression.createValueExpression
(
LazyValueExpression.java:55)
       at org.apache.myfaces.trinidadinternal.config.ConfigParser
$Handler.endElement(ConfigParser.java:252)
       at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(
AbstractSAXParser.java:601)
       at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement
(
XMLDocumentFragmentScannerImpl.java:1782)
       at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl
$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938)
       at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(
XMLDocumentScannerImpl.java:648)
       at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(
XMLNSDocumentScannerImpl.java:140)
       at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument
(
XMLDocumentFragmentScannerImpl.java:511)
       at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(
XML11Configuration.java:808)
       at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(
XML11Configuration.java:737)
       at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(
XMLParser.java:119)
       at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse
(AbstractSAXParser.java:1205)
       at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl
$JAXPSAXParser.parse(SAXParserImpl.java:522)
       at
org.apache.myfaces.trinidadinternal.config.ConfigParser.parseConfigFile(
ConfigParser.java:81)
       at
org.apache.myfaces.trinidadinternal.context.RequestContextFactoryImpl._getBean
(
RequestContextFactoryImpl.java:71)
       at
org.apache.myfaces.trinidadinternal.context.RequestContextFactoryImpl.createContext
(
RequestContextFactoryImpl.java:56)
       at
org.apache.myfaces.trinidadinternal.config.GlobalConfiguratorImpl._attachRequestContext
(
GlobalConfiguratorImpl.java:470)
       at
org.apache.myfaces.trinidadinternal.config.GlobalConfiguratorImpl.beginRequest
(
GlobalConfiguratorImpl.java:208)
       at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(
TrinidadFilterImpl.java:155)
       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.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:233)
       at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:191)
       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:293)
       at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:849)
       at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(
JIoEndpoint.java:454)
       at java.lang.Thread.run(Thread.java:662)
FormularDBNew: 2011-03-02 08:57:08,800 ERROR [http-8080-1]
javax.faces.webapp._ErrorPageWriter: An exception occurred
java.lang.NullPointerException
       at
org.apache.myfaces.trinidadinternal.renderkit.RenderKitDecorator.getRenderKit
(
RenderKitDecorator.java:119)
       at
org.apache.myfaces.trinidadinternal.renderkit.RenderKitDecorator.getResponseStateManager
(
RenderKitDecorator.java:70)
       at
org.apache.myfaces.shared_impl.renderkit.RendererUtils.getResponseStateManager
(
RendererUtils.java:1184)
       at org.apache.myfaces.lifecycle.DefaultRestoreViewSupport.isPostback(
DefaultRestoreViewSupport.java:141)
       at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(
RestoreViewExecutor.java:80)
       at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(
LifecycleImpl.java:103)
       at org.apache.myfaces.lifecycle.LifecycleImpl.execute(
LifecycleImpl.java:76)
       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:183)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:206)
       at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:646)
       at org.apache.catalina.core.ApplicationDispatcher.processRequest(
ApplicationDispatcher.java:438)
       at org.apache.catalina.core.ApplicationDispatcher.doForward(
ApplicationDispatcher.java:374)
       at org.apache.catalina.core.ApplicationDispatcher.forward(
ApplicationDispatcher.java:302)
       at org.apache.catalina.core.StandardHostValve.custom(
StandardHostValve.java:416)
       at org.apache.catalina.core.StandardHostValve.throwable(
StandardHostValve.java:271)
       at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:142)
       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:293)
       at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:849)
       at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(
JIoEndpoint.java:454)
       at java.lang.Thread.run(Thread.java:662)

> Provide a way to change the order of ELResolvers
> ------------------------------------------------
>
>                 Key: MYFACES-2873
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2873
>             Project: MyFaces Core
>          Issue Type: Improvement
>    Affects Versions: 1.2.9, 2.0.1
>            Reporter: Jakob Korherr
>            Assignee: Jakob Korherr
>             Fix For: 2.0.2
>
>         Attachments: MYFACES-2873.patch
>
>
> When using CDI or Spring or any other framework/lib that provides a custom 
> ELResolver there can be performance problems, because the custom ELResolvers 
> from the faces-config are plugged in pretty early in the resolver chain.
> For CDI this means that for lots of trivial ELExpressions (like Array or Map 
> value lookups) the CDI-ELResolver gets called and this resolver is not very 
> performant, because it has to go through all Objects which are handled by CDI 
> to find the fitting one. And in the most cases it won't find a fitting 
> object, because the requested value is not handled by CDI.
> JSF currently only allows to sort the ELResolvers from different faces-config 
> files, but not to change the order of predefined ELResolvers (like e.g. 
> MapELResolver). Thus talking with Mark Struberg and Gerhard Petracek we came 
> up with a Comparator<ELResolver> solution for this problem.
> The user can define a Comparator<ELResolver> via a web.xml config param and 
> this comparator will be used to sort the ELResolvers before they are applied 
> (but of course, only once). In addition we provide 3 default implementations: 
> one to put every ELResolver from the faces-config to the front, one to put 
> them to the back and one optimized for OpenWebBeans.
> This solution gives you many improvements:
>  - you can tune your application by a customized order of ELResolvers
>  - you don't need MyFaces implementation classes, but only a simple Comparator
>  - if you switch to Mojarra or a earlier version of MyFaces, the ordering 
> just won't work, but the behavior of the ELResolvers is the same
> The context-parameter will look like this (for the OWB-optimized resolver):
> <context-param>
>         <param-name>org.apache.myfaces.EL_RESOLVER_COMPARATOR</param-name>
>         
> <param-value>org.apache.myfaces.el.unified.OpenWebBeansELResolverComparator</param-value>
> </context-param>

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

        

Reply via email to