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

Reply via email to