[ 
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

Reply via email to