Browse Source

Guard NPE in HeartbeatMonitor

fixes gh-129
pull/130/head
Spencer Gibb 9 years ago
parent
commit
23d3a2ec3d
No known key found for this signature in database
GPG Key ID: 7788A47380690861
  1. 2
      spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/event/HeartbeatMonitor.java
  2. 11
      spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/event/HeartbeatMonitorTests.java

2
spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/event/HeartbeatMonitor.java

@ -34,7 +34,7 @@ public class HeartbeatMonitor { @@ -34,7 +34,7 @@ public class HeartbeatMonitor {
*/
public boolean update(Object value) {
Object last = this.latestHeartbeat.get();
if (!value.equals(last)) {
if (value != null && !value.equals(last)) {
return this.latestHeartbeat.compareAndSet(last, value);
}
return false;

11
spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/event/HeartbeatMonitorTests.java

@ -40,4 +40,15 @@ public class HeartbeatMonitorTests { @@ -40,4 +40,15 @@ public class HeartbeatMonitorTests {
assertTrue(this.monitor.update("bar"));
}
@Test
public void nullInitialValue() {
assertFalse(this.monitor.update(null));
}
@Test
public void nullSecondValue() {
assertTrue(this.monitor.update("foo"));
assertFalse(this.monitor.update(null));
}
}

Loading…
Cancel
Save