[
https://issues.apache.org/jira/browse/RIVER-395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chris Dolan updated RIVER-395:
------------------------------
Attachment: discovery_listener_safety.patch
LookupDiscovery.java | 27 ++++++++++++++----------
LookupDiscoveryManager.java | 48 ++++++++++++++++++++++++++++++++++++++------
LookupLocatorDiscovery.java | 15 +++++++++----
3 files changed, 68 insertions(+), 22 deletions(-)
Wraps DiscoveryListener invocations in try/catch blocks and logs failures.
I had to add a logger to LookupDiscoveryManager because there was not one
present already
> 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
> Attachments: discovery_listener_safety.patch
>
>
> (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