diff --git a/src/org/openbravo/externaldata/integration/examples/FailureEventHandler.java b/src/org/openbravo/externaldata/integration/examples/FailureEventHandler.java
new file mode 100644
--- /dev/null
+++ b/src/org/openbravo/externaldata/integration/examples/FailureEventHandler.java
@@ -0,0 +1,41 @@
+package org.openbravo.externaldata.integration.examples;
+
+import javax.enterprise.event.Observes;
+
+import org.openbravo.base.exception.OBException;
+import org.openbravo.base.model.Entity;
+import org.openbravo.base.model.ModelProvider;
+import org.openbravo.client.kernel.event.EntityPersistenceEventObserver;
+import org.openbravo.client.kernel.event.EntityUpdateEvent;
+import org.openbravo.model.common.uom.UOM;
+
+public class FailureEventHandler extends EntityPersistenceEventObserver {
+
+  private static Entity[] entities = { //
+      ModelProvider.getInstance().getEntity(UOM.class) };
+
+  @Override
+  protected Entity[] getObservedEntities() {
+    return entities;
+  }
+
+  public void onUpdate(@Observes EntityUpdateEvent event) {
+    if (!isValidEvent(event)) {
+      return;
+    }
+    UOM uom = (UOM) event.getTargetInstance();
+    if (uom.getName().equals("Test7")) {
+      throw new OBException("FAIL");
+    }
+  }
+
+  public void onSave(@Observes EntityUpdateEvent event) {
+    if (!isValidEvent(event)) {
+      return;
+    }
+    UOM uom = (UOM) event.getTargetInstance();
+    if (uom.getName().equals("Test7")) {
+      throw new OBException("FAIL");
+    }
+  }
+}
