Split test into sub-tests in order to avoid mockito UnnecessaryStubbingExceptions. These exceptions occurred because of 3 ambiguous uses of "when().thenReturn()" in the same test. These calls were ambiguous, because the when() argument was identical and mockito did not check the thenReturn() arguments, which would have differentiated the calls. Splitting this test method into 4 test methods achieved this call differentiation.
* If Tor *.onion hostname, use HTTP with Tor proxy
* If 127.0.0.1 or localhost, use HTTP without Tor proxy
* If LAN address or *.local FQDN, use HTTP without Tor proxy
* If any other FQDN hostname, use HTTPS with Tor proxy
The p2pNetworkAndWalletReady MonadicBinding might be removed from GC
if its a local variable. I observed that in BisqSetup with a similar
setup. It might be an implementation weakness in MonadicBinding
(usage of weak references?). A tester reported that he does not see any
result, which might be cause that the service never gets the
onP2pNetworkAndWalletReady triggered if the MonadicBinding is not there
anymore.
By removing the listener we need at shutdown we need it anyway as class
field (so codacy does not complain anymore). As well added a check if
all is already complete to skip the MonadicBinding at all
(not expected case in onAllServicesInitialized).
- Make entrySet final
- Avoind unneeded wrapping
- Remove visibility of entrySet
- Add getAddressEntriesAsListImmutable method. This is the only access for the hashSet
so we ensure it cannot be changed from outside.
- Remove stream() method
- Remove unused return types
- Improve some stream structures
- Renaming, improve comments
In dev testing I got the case of duplicated address entries and thus
incorrect balance. I could not reproduce it later but looking in the
AddressEntry code it was unsafe using the add operation on list without
a contains check. Better instead to use a HashSet and avoid possibility
of duplicated entries by the chosen data structure.
Note that the protobuf representation is still a list and get converted
to a HashSet.
dispute has been opened. This will cause a Runtime exception but that
is justified as the caller need to ensure to do the check and do not
allow to get to that point.
* If Tor *.onion hostname, use HTTP with Tor proxy
* If 127.0.0.1 or localhost, use HTTP without Tor proxy
* If LAN address or *.local FQDN, use HTTP without Tor proxy
* If any other FQDN hostname, use HTTPS with Tor proxy