In reviewing the code prior to applying the patch, I noticed the
following in the LookupDiscoveryListener.Notifier.run() method:
try {
loc = regs[i].getLocator();
} catch (Throwable ex) { /* ignore */ }
What do people think about ignoring Throwable?
Chris, Thanks for the patch. Do you happen to have a unit or QA test for
this problem?
Patricia
On 3/30/2011 3:05 PM, Chris Dolan (JIRA) wrote:
Ill-behaved DiscoveryListener can terminate discovery notifier threads
----------------------------------------------------------------------
Key: RIVER-395
URL: https://issues.apache.org/jira/browse/RIVER-395
Project: River
Issue Type: Bug
Components: net_jini_discovery
Affects Versions: jtsk_2.1
Reporter: Chris Dolan
(bug detected in Jini 2.1, still present in 2.1.2+ trunk)
If a net.jini.discovery.DiscoveryListener implementation throws an unchecked
exception, then the LookupLocatorDiscovery$Notifier thread and/or the
LookupDiscovery$Notifier thread will exit prematurely. In practice, this can
prevent the JoinManager$DiscMgrListener or
ServiceDiscoveryManager$DiscMgrListener callbacks from being invoked, resulting
in incomplete state for a registrar.
A soon-to-be attached patch surrounds each listener invocation with a try/catch
block.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira