In previous versions of the product, particular concurrency between a request thread and the NIO EventPoller thread could result in the EventPoller seeing an unaccounted for null `ChannelInfo` object in its maintain loop.
As a result, the NIO EventPoller thread could then die from an uncaught `NullPointerException`. This could then lead to overall server unresponsiveness and connections remaining unclosed until the pool is exhausted.
In this release the EventPoller thread accounts for any such null to prevent the `NullPointerException` from being thrown and the EventPoller thread will no longer die from such a `NullPointerException`.
The EventPoller has been seen to die due to the following NPE:
Exception caught in EventPoller.maintain: java.lang.NullPointerException
at org.apache.tomcat.util.net.NioEndpoint.processChannel(NioEndpoint.java:480) [jbossweb-7.2.2.Final-01079145-debug.jar:7.2.2.Final]
at org.apache.tomcat.util.net.NioEndpoint$EventPoller.maintain(NioEndpoint.java:1170) [jbossweb-7.2.2.Final-01079145-debug.jar:7.2.2.Final]
at org.apache.tomcat.util.net.NioEndpoint$EventPoller.run(NioEndpoint.java:1138) [jbossweb-7.2.2.Final-01079145-debug.jar:7.2.2.Final]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
A null pointer check was added already to avoid the NPE. This fix got in pretty quick With the upgrade to 7.4.2.Final, but just wanted to get this bug and fix noted.
The EventPoller has been seen to die due to the following NPE: Exception caught in EventPoller.maintain: java.lang.NullPointerException at org.apache.tomcat.util.net.NioEndpoint.processChannel(NioEndpoint.java:480) [jbossweb-7.2.2.Final-01079145-debug.jar:7.2.2.Final] at org.apache.tomcat.util.net.NioEndpoint$EventPoller.maintain(NioEndpoint.java:1170) [jbossweb-7.2.2.Final-01079145-debug.jar:7.2.2.Final] at org.apache.tomcat.util.net.NioEndpoint$EventPoller.run(NioEndpoint.java:1138) [jbossweb-7.2.2.Final-01079145-debug.jar:7.2.2.Final] at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]