Skip to content

Commit

Permalink
Include the failure that the caused the dead letter
Browse files Browse the repository at this point in the history
Include the failure that the caused the dead letter

#2021
  • Loading branch information
smcvb committed Nov 26, 2021
1 parent ab8e5f1 commit cda3bd4
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,30 +29,50 @@
*/
public class GenericEventDeadLetter implements DeadLetter<EventMessage<?>> {

/**
*
*/
public static final Throwable SEQUENCED_DEAD_LETTER =
new Throwable("Added dead letter as part of earlier letters within the same sequence.");

private final String sequenceIdentifier;
private final Instant deadLettered;
private final EventMessage<?> deadLetter;
private final Throwable failure;
private final Instant deadLettered;

/**
* @param sequenceIdentifier
* @param deadLetter
*/
public GenericEventDeadLetter(String sequenceIdentifier, EventMessage<?> deadLetter) {
this(sequenceIdentifier, deadLetter, SEQUENCED_DEAD_LETTER);
}

/**
* @param sequenceIdentifier
* @param deadLetter
* @param failure
*/
public GenericEventDeadLetter(String sequenceIdentifier,
EventMessage<?> deadLetter) {
this(sequenceIdentifier, GenericEventMessage.clock.instant(), deadLetter);
EventMessage<?> deadLetter,
Throwable failure) {
this(sequenceIdentifier, deadLetter, failure, GenericEventMessage.clock.instant());
}

/**
* @param sequenceIdentifier
* @param deadLettered
* @param deadLetter
* @param failure
* @param deadLettered
*/
public GenericEventDeadLetter(String sequenceIdentifier,
Instant deadLettered,
EventMessage<?> deadLetter) {
EventMessage<?> deadLetter,
Throwable failure,
Instant deadLettered) {
this.sequenceIdentifier = sequenceIdentifier;
this.deadLettered = deadLettered;
this.deadLetter = deadLetter;
this.failure = failure;
}

@Override
Expand All @@ -61,13 +81,18 @@ public String sequenceIdentifier() {
}

@Override
public Instant deadLettered() {
return deadLettered;
public EventMessage<?> deadLetter() {
return deadLetter;
}

@Override
public EventMessage<?> deadLetter() {
return deadLetter;
public Throwable failure() {
return failure;
}

@Override
public Instant deadLettered() {
return deadLettered;
}

@Override
Expand All @@ -79,14 +104,15 @@ public boolean equals(Object o) {
return false;
}
GenericEventDeadLetter that = (GenericEventDeadLetter) o;
return Objects.equals(sequenceIdentifier, that.sequenceIdentifier) && Objects.equals(
deadLettered,
that.deadLettered) && Objects.equals(deadLetter, that.deadLetter);
return Objects.equals(sequenceIdentifier, that.sequenceIdentifier)
&& Objects.equals(deadLettered, that.deadLettered)
&& Objects.equals(deadLetter, that.deadLetter)
&& Objects.equals(failure, that.failure);
}

@Override
public int hashCode() {
return Objects.hash(sequenceIdentifier, deadLettered, deadLetter);
return Objects.hash(sequenceIdentifier, deadLettered, deadLetter, failure);
}

@Override
Expand All @@ -95,6 +121,7 @@ public String toString() {
"sequenceIdentifier='" + sequenceIdentifier + '\'' +
", deadLettered=" + deadLettered +
", deadLetter=" + deadLetter +
", failure=" + failure +
'}';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ public interface DeadLetter<T extends Message<?>> {
*
* @return
*/
// TODO: 26-11-21 replace for ProcessingIdentifier interface?
String sequenceIdentifier();

/**
Expand All @@ -44,6 +45,8 @@ public interface DeadLetter<T extends Message<?>> {
*/
T deadLetter();

Throwable failure();

/**
*
* @param one
Expand Down

0 comments on commit cda3bd4

Please sign in to comment.