Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
jtsk_2.1
-
None
Description
When you modify the set of LookupLocator in use by LookupLocatorDiscovery the lookup locators considered equal as in LookupLocator.equals are ignored, although they can carry different constraints with them such as with ConstrainableLookupLocator. This means that when unicast discovery fails for a lookup locator due to 'wrong' constraints, and you pass in a new lookup locator with different constraints (that might make discovery possible) the retries will continue with the earlier lookup locator passed in.
The problem here is that lookup locator equality is or not properly specified, or the LookupLocatorDiscovery utility must assume lookup locators passed have non-trivial characteristics that won't surface by calling equals on them.
This issue is closely related to how we should deal with changing security requirements over time.