You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Donatas Ciuksys (JIRA)" <de...@myfaces.apache.org> on 2014/10/08 08:48:34 UTC

[jira] [Created] (MYFACES-3930) java.lang.IllegalArgumentException: null at HtmlRenderKitImpl.createResponseWriter

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)