Skip to content

Commit

Permalink
Avoid getting a response when no response is required when using webs…
Browse files Browse the repository at this point in the history
…tocket

Signed-off-by: Klem Yannic (INST/ECS1) <yannic.klem@bosch-si.com>
  • Loading branch information
Yannic92 committed Jan 23, 2020
1 parent 638c13b commit 528ecf2
Showing 1 changed file with 7 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.eclipse.ditto.model.base.auth.AuthorizationContext;
import org.eclipse.ditto.model.base.exceptions.DittoRuntimeException;
import org.eclipse.ditto.model.base.headers.DittoHeaders;
import org.eclipse.ditto.model.base.headers.WithDittoHeaders;
import org.eclipse.ditto.model.jwt.ImmutableJsonWebToken;
import org.eclipse.ditto.model.jwt.JsonWebToken;
Expand Down Expand Up @@ -141,18 +142,21 @@ public Receive createReceive() {
.orElse(modifyConfigBehavior())
.orElse(ReceiveBuilder.create()
.match(Signal.class, signal -> {
final Optional<String> originOpt = signal.getDittoHeaders().getOrigin();
final DittoHeaders dittoHeaders = signal.getDittoHeaders();
final Optional<String> originOpt = dittoHeaders.getOrigin();
if (originOpt.isPresent()) {
final String origin = originOpt.get();
final Optional<ActorRef> sessionActor = getContext().findChild(origin);
if (sessionActor.isPresent()) {
commandRouter.tell(signal, sessionActor.get());
final ActorRef sender = dittoHeaders.isResponseRequired() ? sessionActor.get() :
ActorRef.noSender();
commandRouter.tell(signal, sender);
} else {
logger.debug("No session actor found for origin: {}", origin);
}
} else {
logger.warning("Signal is missing the required origin header: {}",
signal.getDittoHeaders().getCorrelationId());
dittoHeaders.getCorrelationId());
}
})
.matchEquals(Control.RETRIEVE_WEBSOCKET_CONFIG, this::replyWebsocketConfig)
Expand Down

0 comments on commit 528ecf2

Please sign in to comment.