ARTEMIS-3363 Fix TransportConfiguration extraParams equals

This commit is contained in:
Domenico Francesco Bruscino 2021-10-21 14:46:51 +02:00 committed by clebertsuconic
parent 84ffa9b37a
commit 14f8e8d5ab
2 changed files with 20 additions and 3 deletions

View File

@ -222,9 +222,8 @@ public class TransportConfiguration implements Serializable {
return false;
}
// Empty and null extraProps maps are equivalent so the condition to check if two extraProps maps are equal is:
// (extraProps == that.extraProps) || (extraProps != null && ((extraProps.isEmpty() && that.extraProps == null) || extraProps.equals(that.extraProps)))
if ((extraProps != that.extraProps) && (extraProps == null || ((!extraProps.isEmpty() || that.extraProps != null) && !extraProps.equals(that.extraProps)))) {
// Empty and null extraProps maps are equivalent so the condition to check if two extraProps maps are not equal is:
if ((extraProps != that.extraProps) && (extraProps != null || !that.extraProps.isEmpty()) && (that.extraProps != null || !extraProps.isEmpty()) && (extraProps == null || that.extraProps == null || !extraProps.equals(that.extraProps))) {
return false;
}

View File

@ -67,6 +67,24 @@ public class TransportConfigurationTest {
}
@Test
public void testExtraParamsEquals() {
final String name = "";
final String className = this.getClass().getName();
final Map<String, Object> params = Collections.emptyMap();
final Map<String, Object> extraParams = Collections.singletonMap("key", "foo");
Assert.assertEquals(new TransportConfiguration(className, params, name, null), new TransportConfiguration(className, params, name, null));
Assert.assertEquals(new TransportConfiguration(className, params, name, null), new TransportConfiguration(className, params, name, Collections.emptyMap()));
Assert.assertEquals(new TransportConfiguration(className, params, name, Collections.emptyMap()), new TransportConfiguration(className, params, name, null));
Assert.assertEquals(new TransportConfiguration(className, params, name, extraParams), new TransportConfiguration(className, params, name, extraParams));
Assert.assertEquals(new TransportConfiguration(className, params, name, extraParams), new TransportConfiguration(className, params, name, new HashMap<>(extraParams)));
Assert.assertNotEquals(new TransportConfiguration(className, params, name, null), new TransportConfiguration(className, params, name, extraParams));
Assert.assertNotEquals(new TransportConfiguration(className, params, name, Collections.emptyMap()), new TransportConfiguration(className, params, name, extraParams));
Assert.assertNotEquals(new TransportConfiguration(className, params, name, extraParams), new TransportConfiguration(className, params, name, Collections.singletonMap("key", "too")));
}
@Test
public void testToStringObfuscatesPasswords() {
HashMap<String, Object> params = new HashMap<>();