ARTEMIS-4814 Improve synchronization on SimpleAddressManager::getDirectBindings

This commit is contained in:
Clebert Suconic 2024-06-20 09:38:53 -04:00 committed by clebertsuconic
parent 229afee380
commit dba753bffc

View File

@ -178,7 +178,17 @@ public class SimpleAddressManager implements AddressManager {
@Override
public Collection<Binding> getDirectBindings(final SimpleString address) throws Exception {
SimpleString realAddress = CompositeAddress.extractAddressName(address);
return new ArrayList<>(directBindingMap.getOrDefault(realAddress, Collections.emptyList()));
ArrayList<Binding> outputList = new ArrayList<>();
directBindingMap.compute(realAddress, (key, bindings) -> {
if (bindings != null) {
outputList.addAll(bindings);
}
return bindings;
});
return Collections.unmodifiableCollection(outputList);
}
@Override