Has anyone else ever seen this exception? select loop throws java.lang.NullPointerException at com.sun.jini.jeri.internal.runtime.SelectionManager.waitForReadyKey(419) at com.sun.jini.jeri.internal.runtime.SelectionManager.access$600(80) at com.sun.jini.jeri.internal.runtime.SelectionManager$SelectLoop.run(287) at com.sun.jini.thread.ThreadPool$Worker.run(150) at java.lang.Thread.run(619)
We recently switched from blocking Jeri to async NIO to save some RAM via fewer threads. We had only one known occurrence of this problem so I have no debugging information, but when it happened it kept happening for hours and the service was effectively dead to the outside world. I studied the SelectionManager code pretty closely, and I can't see how a null can be attached to any selection key that matters. The only two places where keys are registered are in processRenewQueue() where the attachment is guaranteed non-null and in the SelectionManager constructor, where the wakeup key indeed has a null attachment. But the wakeup key is filtered out in waitForReadyKey line 391, so that can't be the cause of the NPE. There were many other exceptions in the process logs, but I thought I'd start with this one because the others looked more normal (like failed unicast calls via LookupLocators). Any ideas? Thanks, Chris