Donatas Ciuksys created MYFACES-3930:
----------------------------------------

             Summary: java.lang.IllegalArgumentException: null at 
HtmlRenderKitImpl.createResponseWriter
                 Key: MYFACES-3930
                 URL: https://issues.apache.org/jira/browse/MYFACES-3930
             Project: MyFaces Core
          Issue Type: Bug
    Affects Versions: 2.2.5
         Environment: TomEE 1.7.1 Plus, Oracle JDK 1.7.0_76 x64, Windows Server 
2012
            Reporter: Donatas Ciuksys


Production system logs often contain exception stack traces like below:

{code}
java.lang.IllegalArgumentException: null
        at 
org.apache.myfaces.renderkit.html.HtmlRenderKitImpl.createResponseWriter(HtmlRenderKitImpl.java:358)
 ~[myfaces-impl-2.2.5.jar:2.2.5]
        at 
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.createResponseWriter(FaceletViewDeclarationLanguage.java:2252)
 ~[myfaces-impl-2.2.5.jar:2.2.5]
        at 
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1861)
 ~[myfaces-impl-2.2.5.jar:2.2.5]
        at 
org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:313)
 ~[myfaces-impl-2.2.5.jar:2.2.5]
        at 
javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:58)
 ~[myfaces-api-2.2.5.jar:2.2.5]
        at 
javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:58)
 ~[myfaces-api-2.2.5.jar:2.2.5]
        at 
org.ocpsoft.rewrite.faces.RewriteViewHandler.renderView(RewriteViewHandler.java:186)
 ~[rewrite-integration-faces-2.0.12.Final.jar:2.0.12.Final]
        at 
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116)
 ~[myfaces-impl-2.2.5.jar:2.2.5]
        at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:267) 
~[myfaces-impl-2.2.5.jar:2.2.5]
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:200) 
[myfaces-api-2.2.5.jar:2.2.5]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
 [catalina.jar:7.0.55]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
 [catalina.jar:7.0.55]
        at 
org.omnifaces.filter.FacesExceptionFilter.doFilter(FacesExceptionFilter.java:56)
 [omnifaces-1.8.1.jar:1.8.1-20140603]
        at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:77) 
[omnifaces-1.8.1.jar:1.8.1-20140603]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
 [catalina.jar:7.0.55]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
 [catalina.jar:7.0.55]
        at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
[tomcat7-websocket.jar:7.0.55]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
 [catalina.jar:7.0.55]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
 [catalina.jar:7.0.55]
        at 
org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:205) 
[rewrite-servlet-2.0.12.Final.jar:2.0.12.Final]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
 [catalina.jar:7.0.55]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
 [catalina.jar:7.0.55]
        at 
lt.asseco.tar.setup.jsf.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:30)
 [CharacterEncodingFilter.class:na]
        at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:77) 
[omnifaces-1.8.1.jar:1.8.1-20140603]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
 [catalina.jar:7.0.55]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
 [catalina.jar:7.0.55]
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
 [catalina.jar:7.0.55]
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
 [catalina.jar:7.0.55]
        at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44) 
[tomee-catalina-1.7.1.jar:1.7.1]
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
 [catalina.jar:7.0.55]
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
[catalina.jar:7.0.55]
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
[catalina.jar:7.0.55]
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
 [catalina.jar:7.0.55]
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
[catalina.jar:7.0.55]
        at 
org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:188) 
[tomcat-coyote.jar:7.0.55]
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
 [tomcat-coyote.jar:7.0.55]
        at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2440)
 [tomcat-coyote.jar:7.0.55]
        at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2429)
 [tomcat-coyote.jar:7.0.55]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_67]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_67]
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 [tomcat-coyote.jar:7.0.55]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
{code}

To investigate, I started to print all the request info I can think of:

{code}
ERROR 2014-10-08 08:23:47,667 ##### REQUEST ANALYSIS #####: host: 
90.134.132.182, method: GET, requestURL: 
https://www.e-tar.lt/portal/legalAct.html?documentId=TAR.B61C7CEDA1B8, AJAX: 
false, sessionId: null, userAgent: SEC-SGHM310/1.0 Openwave/6.2.3 
Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) 
MMP/2.0, contentTypesFromAccept: application/vnd.phonecom.mmc-xml, 
application/vnd.wap.connectivity-wbxml, application/vnd.wap.wmlc;type=4365, 
application/vnd.wap.wmlscriptc, application/vnd.wap.xhtml+xml, 
application/xhtml+xml;profile="http://www.wapforum.org/xhtml";, image/bmp, 
image/gif, image/jpeg, image/jpg, image/png, image/vnd.wap.wbmp, 
image/x-up-wpng, multipart/mixed, multipart/related, text/html, text/plain, 
text/vnd.sun.j2me.app-descriptor, text/vnd.wap.connectivity-xml, 
text/vnd.wap.wml;type=4365, image/gif, image/jpeg, image/bmp, image/png, 
image/vnd.wap.wbmp, application/vnd.smaf, application/x-smaf, audio/sp-midi, 
application/x-midi, audio/midi, audio/mid, audio/x-midi, audio/x-mid, 
audio/amr, audio/x-amr, application/vnd.oma.dd+xml, audio/mp3, audio/x-mp3, 
audio/mpeg, audio/x-mpeg, audio/mpeg3, audio/x-mpeg3, audio/x-wav, audio/wav, 
text/x-iMelody, text/x-imelody, audio/imelody, 
text/vnd.sun.j2me.app-descriptor, application/java-archive, 
application/vnd.oma.drm.message, text/x-vcalendar, text/x-vcard, 
application/x-httpd-php
{code}

I understand that in this case it is something wrong with client browser 
request, but error message is not informative.
I think there is a bug in MyFaces source code resulting with message "null":

HtmlRenderKitImpl.java:358 has:
{code}
                        throw new IllegalArgumentException(
                                "ContentTypeList does not contain a supported 
content type: "
                                        + contentTypeListString != null ? 
                                                contentTypeListString : 
contentTypeListStringFromAccept);

{code}

And in Java operator "+" has higher priority than "? :", so the test "!= null" 
in this case allways returns "true", but contentTypeListString is null.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to