diff options
Diffstat (limited to 'infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericWriter.java')
-rw-r--r-- | infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericWriter.java | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericWriter.java b/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericWriter.java index 486da9b4a..30d15e370 100644 --- a/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericWriter.java +++ b/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericWriter.java @@ -40,15 +40,21 @@ public final class GenericWriter<D extends DataObject> extends AbstractGenericWr @Override protected void writeCurrentAttributes(@Nonnull final InstanceIdentifier<D> id, @Nonnull final D data, @Nonnull final WriteContext ctx) throws WriteFailedException { - // TODO wrap all customizer invocations in try catch, and wrap runtime exceptions in ReadFailed - // TODO same for readers - customizer.writeCurrentAttributes(id, data, ctx); + try { + customizer.writeCurrentAttributes(id, data, ctx); + } catch (RuntimeException e) { + throw new WriteFailedException.CreateFailedException(id, data, e); + } } @Override protected void deleteCurrentAttributes(@Nonnull final InstanceIdentifier<D> id, @Nonnull final D dataBefore, @Nonnull final WriteContext ctx) throws WriteFailedException { - customizer.deleteCurrentAttributes(id, dataBefore, ctx); + try { + customizer.deleteCurrentAttributes(id, dataBefore, ctx); + } catch (RuntimeException e) { + throw new WriteFailedException.DeleteFailedException(id, e); + } } @Override @@ -56,6 +62,10 @@ public final class GenericWriter<D extends DataObject> extends AbstractGenericWr @Nonnull final D dataBefore, @Nonnull final D dataAfter, @Nonnull final WriteContext ctx) throws WriteFailedException { - customizer.updateCurrentAttributes(id, dataBefore, dataAfter, ctx); + try { + customizer.updateCurrentAttributes(id, dataBefore, dataAfter, ctx); + } catch (RuntimeException e) { + throw new WriteFailedException.UpdateFailedException(id, dataBefore, dataAfter, e); + } } } |