Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-20402

NullPointerException using Jenkins with Tomcat

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • core
    • SUSE Linux Enterprise Server 11 (Service Pack 2)

      We have installed the Jenkins on Tomcat (version 6.0.18).
      After upgrading Jenkins from version 1.522 to 1.537 every time a user connects to the server or clicks any link on the Jenkins GUI a null pointer exception appears in the log (see below).

      After some investigation I found that this issue was introduced with the Jenkins version 1.526.

      04.11.2013 07:00:06 org.apache.coyote.ajp.AjpMessage appendString
      SEVERE: Cannot append null value
      Throwable occurred: java.lang.NullPointerException
      at org.apache.coyote.ajp.AjpMessage.appendString(AjpMessage.java:242)
      at org.apache.coyote.ajp.AjpMessage.appendBytes(AjpMessage.java:178)
      at org.apache.coyote.ajp.AjpAprProcessor.prepareResponse(AjpAprProcessor.java:962)
      at org.apache.coyote.ajp.AjpAprProcessor.action(AjpAprProcessor.java:486)
      at org.apache.coyote.Response.action(Response.java:183)
      at org.apache.coyote.Response.sendHeaders(Response.java:379)
      at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)
      at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:273)
      at org.apache.catalina.connector.CoyoteOutputStream.close(CoyoteOutputStream.java:104)
      at com.jcraft.jzlib.DeflaterOutputStream.close(DeflaterOutputStream.java:122)
      at org.kohsuke.stapler.compression.FilterServletOutputStream.close(FilterServletOutputStream.java:36)
      at java.io.FilterOutputStream.close(FilterOutputStream.java:154)
      at sun.nio.cs.StreamEncoder$CharsetSE.implClose(StreamEncoder.java:454)
      at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:183)
      at java.io.OutputStreamWriter.close(OutputStreamWriter.java:282)
      at java.io.BufferedWriter.close(BufferedWriter.java:259)
      at org.dom4j.io.XMLWriter.close(XMLWriter.java:286)
      at org.kohsuke.stapler.jelly.HTMLWriterOutput.close(HTMLWriterOutput.java:70)
      at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:56)
      at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
      at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:716)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:794)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:841)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:630)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:224)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:438)
      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:286)
      at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:421)
      at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:378)
      at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
      at java.lang.Thread.run(Thread.java:738)

          [JENKINS-20402] NullPointerException using Jenkins with Tomcat

          Daniel Fischer added a comment - - edited

          Same problem here on SLES 11 SP3 (x86_64) using Jenkins version 1.554.1 .

          Jenkins authentication is performed with servlet container.
          Jenkins runs on Apache Tomcat 6 and is connected with AJP to a Apache HTTP Proxy Server.
          The client (browser) connects using HTTPS.

          Client <-= HTTPS =-> Apache <-= AJP =-> Apache Tomcat

          Here is the error message in detail (looks the same as the one in comment #0 ):

          Mai 09, 2014 2:29:45 PM org.apache.coyote.ajp.AjpMessage appendString
          SEVERE: Cannot append null value
          java.lang.NullPointerException
          at org.apache.coyote.ajp.AjpMessage.appendString(AjpMessage.java:242)
          at org.apache.coyote.ajp.AjpMessage.appendBytes(AjpMessage.java:178)
          at org.apache.coyote.ajp.AjpAprProcessor.prepareResponse(AjpAprProcessor.java:962)
          at org.apache.coyote.ajp.AjpAprProcessor.action(AjpAprProcessor.java:486)
          at org.apache.coyote.Response.action(Response.java:183)
          at org.apache.coyote.Response.sendHeaders(Response.java:379)
          at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)
          at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:273)
          at org.apache.catalina.connector.CoyoteOutputStream.close(CoyoteOutputStream.java:104)
          at com.jcraft.jzlib.DeflaterOutputStream.close(DeflaterOutputStream.java:122)
          at org.kohsuke.stapler.compression.FilterServletOutputStream.close(FilterServletOutputStream
          .java:36)
          at java.io.FilterOutputStream.close(FilterOutputStream.java:160)
          at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:320)
          at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:149)
          at java.io.OutputStreamWriter.close(OutputStreamWriter.java:233)
          at java.io.BufferedWriter.close(BufferedWriter.java:266)
          at org.dom4j.io.XMLWriter.close(XMLWriter.java:286)
          at org.kohsuke.stapler.jelly.HTMLWriterOutput.close(HTMLWriterOutput.java:70)
          at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:56)
          at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
          at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:717)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
          at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
          at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
          at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
          at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
          at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
          at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
          at hudson.security.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:114)
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
          at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
          at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
          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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:438)
          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:286)
          at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:421)
          at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:378)
          at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
          at java.lang.Thread.run(Thread.java:722)

          Daniel Fischer added a comment - - edited Same problem here on SLES 11 SP3 (x86_64) using Jenkins version 1.554.1 . Jenkins authentication is performed with servlet container. Jenkins runs on Apache Tomcat 6 and is connected with AJP to a Apache HTTP Proxy Server. The client (browser) connects using HTTPS. Client <-= HTTPS =-> Apache <-= AJP =-> Apache Tomcat Here is the error message in detail (looks the same as the one in comment #0 ): Mai 09, 2014 2:29:45 PM org.apache.coyote.ajp.AjpMessage appendString SEVERE: Cannot append null value java.lang.NullPointerException at org.apache.coyote.ajp.AjpMessage.appendString(AjpMessage.java:242) at org.apache.coyote.ajp.AjpMessage.appendBytes(AjpMessage.java:178) at org.apache.coyote.ajp.AjpAprProcessor.prepareResponse(AjpAprProcessor.java:962) at org.apache.coyote.ajp.AjpAprProcessor.action(AjpAprProcessor.java:486) at org.apache.coyote.Response.action(Response.java:183) at org.apache.coyote.Response.sendHeaders(Response.java:379) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305) at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:273) at org.apache.catalina.connector.CoyoteOutputStream.close(CoyoteOutputStream.java:104) at com.jcraft.jzlib.DeflaterOutputStream.close(DeflaterOutputStream.java:122) at org.kohsuke.stapler.compression.FilterServletOutputStream.close(FilterServletOutputStream .java:36) at java.io.FilterOutputStream.close(FilterOutputStream.java:160) at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:320) at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:149) at java.io.OutputStreamWriter.close(OutputStreamWriter.java:233) at java.io.BufferedWriter.close(BufferedWriter.java:266) at org.dom4j.io.XMLWriter.close(XMLWriter.java:286) at org.kohsuke.stapler.jelly.HTMLWriterOutput.close(HTMLWriterOutput.java:70) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:56) at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:717) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) at org.kohsuke.stapler.Stapler.service(Stapler.java:225) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:114) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:438) 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:286) at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:421) at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:378) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) at java.lang.Thread.run(Thread.java:722)

          Daniel Beck added a comment -

          Does this issue still occur in recent Jenkins versions? Was Jenkins 1.535 the first version to be affected by this? What happens when you don't use AJP, does it work then?

          Daniel Beck added a comment - Does this issue still occur in recent Jenkins versions? Was Jenkins 1.535 the first version to be affected by this? What happens when you don't use AJP, does it work then?

          This issue still occurs in the recent version (1.585).
          It appeared first in version 1.526.

          It works when I use the HTTP connector instead.

          Torsten Fleischer added a comment - This issue still occurs in the recent version (1.585). It appeared first in version 1.526. It works when I use the HTTP connector instead.

          Daniel Beck added a comment -

          It appears the AJP implementation does not want to deal with null valued headers. Unfortunately the Servlet spec does not mention whether they're allowed, and what the behavior should be.

          This exception is not actually thrown (breaking things) but purely informational:

              /**
               * Write a MessageBytes out at the current write position.
               * A null MessageBytes is encoded as a string with length 0.  
               */
              public void appendBytes(MessageBytes mb) {
                  if (mb == null) {
                      log.error(sm.getString("ajpmessage.null"), 
                              new NullPointerException());
                      appendInt(0);
                      appendByte(0);
                      return;
                  }
                  (... more code ...)
          

          Not sure this is something that needs fixing in Jenkins (or rather Stapler). That said, given the informational nature of this issue and the availability of an easy workaround (HTTP connector), I'm reducing priority.

          Daniel Beck added a comment - It appears the AJP implementation does not want to deal with null valued headers. Unfortunately the Servlet spec does not mention whether they're allowed, and what the behavior should be. This exception is not actually thrown (breaking things) but purely informational: /** * Write a MessageBytes out at the current write position. * A null MessageBytes is encoded as a string with length 0. */ public void appendBytes(MessageBytes mb) { if (mb == null ) { log.error(sm.getString( "ajpmessage. null " ), new NullPointerException()); appendInt(0); appendByte(0); return ; } (... more code ...) Not sure this is something that needs fixing in Jenkins (or rather Stapler). That said, given the informational nature of this issue and the availability of an easy workaround (HTTP connector), I'm reducing priority.

          Daniel Beck added a comment -

          It appeared first in version 1.526.

          To clarify, it did not occur on 1.525?

          Daniel Beck added a comment - It appeared first in version 1.526. To clarify, it did not occur on 1.525?

          These exceptions do not occur on 1.525, the version we currently run on our server.

          Torsten Fleischer added a comment - These exceptions do not occur on 1.525, the version we currently run on our server.

            Unassigned Unassigned
            torfl Torsten Fleischer
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: