diff --git a/services/concierge/util/src/main/java/org/eclipse/ditto/services/concierge/util/enforcement/PreEnforcer.java b/services/concierge/util/src/main/java/org/eclipse/ditto/services/concierge/util/enforcement/PreEnforcer.java index 4f0283d2cb..3ae3d5dc48 100644 --- a/services/concierge/util/src/main/java/org/eclipse/ditto/services/concierge/util/enforcement/PreEnforcer.java +++ b/services/concierge/util/src/main/java/org/eclipse/ditto/services/concierge/util/enforcement/PreEnforcer.java @@ -15,6 +15,8 @@ import java.util.concurrent.CompletionStage; import java.util.function.Function; +import javax.annotation.Nullable; + import org.eclipse.ditto.model.base.exceptions.DittoRuntimeException; import org.eclipse.ditto.model.base.headers.DittoHeaders; import org.eclipse.ditto.model.base.headers.WithDittoHeaders; @@ -48,14 +50,27 @@ public final class PreEnforcer { private PreEnforcer() {} + /** + * Create a processing unit from a function without reply address for errors. + * + * @param processor function to call. + * @return Akka stream graph. + */ + public static Graph, NotUsed> fromFunction( + final Function> processor) { + + return fromFunction(ActorRef.noSender(), processor); + } + /** * Create a processing unit from a function. * * @param self reference to the actor carrying the pre-enforcement. * @param processor function to call. + * @return Akka stream graph. */ public static Graph, NotUsed> fromFunction( - final ActorRef self, + @Nullable final ActorRef self, final Function> processor) { final Attributes logLevels = @@ -94,7 +109,7 @@ private static Graph, NotUsed> keepResultAndLogErrors(fi private static Object handleError(final Throwable error, final WithSender wrapped, - final ActorRef self) { + @Nullable final ActorRef self) { final Throwable rootCause = extractRootCause(error); final ActorRef sender = wrapped.sender();