Hi,
 
My Tomcat 6.0.18 throws NPEs if there are incoming connections to an NIO 
connector before the connector had a chance to initialize.  The behavior that I 
would expect is for Tomcat to simply refuse incoming connections until the 
connector is ready.
 
I found a similar post on this mailing list 
(http://mail-archives.apache.org/mod_mbox/tomcat-users/200802.mbox/[EMAIL 
PROTECTED]), which links to Bug 43701 
(https://issues.apache.org/bugzilla/show_bug.cgi?id=43701).  The bug report 
describes the behavior that I'm seeing with 6.0.18, but says that it's fixed in 
6.0.15 onwards.  Is it back?  Below is my config and how I reproduce the 
problem.  Exceptions are the same as in the bug report above, but with 
different line numbers.  Thanks in advance for your help.
 
 
Tomcat version info (from running version.bat)
-----------------------------------------------
Server version: Apache Tomcat/6.0.18
Server built:   Jul 22 2008 02:00:36
Server number:  6.0.18.0
OS Name:        Windows 2003
OS Version:     5.2
Architecture:   x86
JVM Version:    1.5.0_05-b05
JVM Vendor:     Sun Microsystems Inc.
 
 
Steps to reproduce
--------------------
1. Add an NIO connector to server.xml, like this
 
 <Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" 
maxThreads="150"
               connectionTimeout="20000" acceptorThreadCount="1" 
redirectPort="8444" socket.directBuffer="false"/>
 
2. Open browser and point it to http://localhost:8081/.  It's easier to 
reproduce with Firefox for some reason.
3. Start Tomcat by double-clicking startup.bat
4. As Tomcat is starting, keep refreshing the browser by quickly clicking the 
refresh button as fast as you can. It may not work the first time.

You should see some NullPointerExceptions in Tomcat log, like this:
 
Oct 28, 2008 11:10:22 AM org.apache.tomcat.util.net.NioEndpoint setSocketOptions
SEVERE:
java.lang.NullPointerException
        at 
org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:1011)
        at 
org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1204)
        at java.lang.Thread.run(Unknown Source)
Oct 28, 2008 11:10:22 AM org.apache.tomcat.util.net.NioEndpoint setSocketOptions
SEVERE:
java.lang.NullPointerException
        at 
org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:1011)
        at 
org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1204)
        at java.lang.Thread.run(Unknown Source)
Oct 28, 2008 11:10:22 AM org.apache.coyote.http11.Http11NioProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Oct 28, 2008 11:10:22 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 831 ms

Reply via email to