diff --git a/src/main/java/net/openhft/chronicle/map/NodeDiscoveryHostPortBroadcaster.java b/src/main/java/net/openhft/chronicle/map/NodeDiscoveryHostPortBroadcaster.java index 43aa59b52..ed88341cd 100644 --- a/src/main/java/net/openhft/chronicle/map/NodeDiscoveryHostPortBroadcaster.java +++ b/src/main/java/net/openhft/chronicle/map/NodeDiscoveryHostPortBroadcaster.java @@ -396,10 +396,16 @@ class BytesExternalizableImpl implements BytesExternalizable { private ATSDirectBitSet orBitSets(@NotNull final ATSDirectBitSet source, @NotNull final ATSDirectBitSet destination) { + source.clear(); + // merges the two bit-sets together via 'or' for (int i = (int) source.nextSetBit(0); i > 0; i = (int) source.nextSetBit(i + 1)) { - destination.set(i); + try { + destination.set(i); + } catch (IndexOutOfBoundsException e) { + e.printStackTrace(); + } } return destination; diff --git a/src/test/java/net/openhft/chronicle/map/NodeDiscoveryHostPortBroadcasterTest.java b/src/test/java/net/openhft/chronicle/map/NodeDiscoveryHostPortBroadcasterTest.java index 4bb3cfa7f..3226199c7 100644 --- a/src/test/java/net/openhft/chronicle/map/NodeDiscoveryHostPortBroadcasterTest.java +++ b/src/test/java/net/openhft/chronicle/map/NodeDiscoveryHostPortBroadcasterTest.java @@ -36,7 +36,12 @@ public class NodeDiscoveryHostPortBroadcasterTest extends TestCase { externalizable.sendBootStrap(); externalizable.add(new InetSocketAddress("myhost", 8888)); + externalizable.add(new InetSocketAddress("myOtherHost", 8888)); externalizable.add((byte) 2); + externalizable.add((byte) 2); + externalizable.add((byte) 3); + externalizable.add((byte) 4); + externalizable.add((byte) 1); Thread.sleep(1000); }