Bug 62263

Summary: java.lang.NullPointerException when using RemoteIpValve
Product: Tomcat 9 Reporter: pschmidt
Component: CatalinaAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 9.0.6   
Target Milestone: -----   
Hardware: PC   
OS: All   
Attachments: server.xml with added RemoteIpValve

Description pschmidt 2018-04-05 16:03:35 UTC
Created attachment 35844 [details]
server.xml with added RemoteIpValve

Steps to reproduce for a newly downloaded instance of Tomcat 9.0.6:

1. Add RemoteIpValve in server.xml

<Valve className="org.apache.catalina.valves.RemoteIpValve"
     protocolHeader="x-forwarded-proto" />
               
See also attachment.

2. Delete webapps\ROOT

3. Startup

Request for Root-URL 

http://localhost:8080

or any other not present context

http://localhost:8080/foo

leads to

05-Apr-2018 17:52:05.780 SCHWERWIEGEND [http-nio-8080-exec-2] org.apache.coyote.http11.Http11Processor.service Error processing request
 java.lang.NullPointerException
	at org.apache.catalina.connector.Request.notifyAttributeAssigned(Request.java:1525)
	at org.apache.catalina.connector.Request.setAttribute(Request.java:1511)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:665)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:407)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
	
Reproducable for Windows 7 and CentOS 6.9.

In our production environment we also get this exception, although there is a ROOT-Context (alas a custom one) deployed. I will do some furher investigations tomorrow.

Thanks a lot in advance.
Comment 1 Mark Thomas 2018-04-06 21:00:52 UTC
Thanks for the report.

Fixed in:
- trunk for 9.0.8 onwards
- 8.5.x for 8.5.31 onwards
- 8.0.x for 8.0.51 onwards
- 7.0.x for 7.0.86 onwards
Comment 2 pschmidt 2018-04-10 07:35:13 UTC
Thank you for fixing :-)