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)