diff --git a/core/common/src/test/java/org/onosproject/store/trivial/SimpleIntentStore.java b/core/common/src/test/java/org/onosproject/store/trivial/SimpleIntentStore.java
index 9f95966..4a9eaa9 100644
--- a/core/common/src/test/java/org/onosproject/store/trivial/SimpleIntentStore.java
+++ b/core/common/src/test/java/org/onosproject/store/trivial/SimpleIntentStore.java
@@ -126,17 +126,11 @@
                         pending.remove(newData.key());
                     }
                 }
-                notifyDelegateIfNotNull(IntentEvent.getEvent(newData));
+                IntentEvent.getEvent(newData).ifPresent(this::notifyDelegate);
             }
         }
     }
 
-    private void notifyDelegateIfNotNull(IntentEvent event) {
-        if (event != null) {
-            notifyDelegate(event);
-        }
-    }
-
     @Override
     public void batchWrite(Iterable<IntentData> updates) {
         for (IntentData data : updates) {
@@ -174,7 +168,7 @@
                 pending.put(data.key(), data);
                 checkNotNull(delegate, "Store delegate is not set")
                         .process(new IntentData(data));
-                notifyDelegateIfNotNull(IntentEvent.getEvent(data));
+                IntentEvent.getEvent(data).ifPresent(this::notifyDelegate);
             } else {
                 log.debug("IntentData {} is older than existing: {}",
                           data, existingData);
