From 03088dbbc846b0eebf02c99e9f83789e4cd224e4 Mon Sep 17 00:00:00 2001 From: Julien Giovaresco Date: Tue, 26 Mar 2024 09:35:45 +0100 Subject: [PATCH] feat: improve handshake error handling When HelloReply's status is ERROR, throw an exception containing error detail that can be handled by the caller. --- .../websocket/channel/WebSocketConnectorChannel.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gravitee-exchange-connector/gravitee-exchange-connector-websocket/src/main/java/io/gravitee/exchange/connector/websocket/channel/WebSocketConnectorChannel.java b/gravitee-exchange-connector/gravitee-exchange-connector-websocket/src/main/java/io/gravitee/exchange/connector/websocket/channel/WebSocketConnectorChannel.java index cd9e110..8d5d024 100644 --- a/gravitee-exchange-connector/gravitee-exchange-connector-websocket/src/main/java/io/gravitee/exchange/connector/websocket/channel/WebSocketConnectorChannel.java +++ b/gravitee-exchange-connector/gravitee-exchange-connector-websocket/src/main/java/io/gravitee/exchange/connector/websocket/channel/WebSocketConnectorChannel.java @@ -16,7 +16,6 @@ package io.gravitee.exchange.connector.websocket.channel; import io.gravitee.exchange.api.channel.exception.ChannelException; -import io.gravitee.exchange.api.channel.exception.ChannelInitializationException; import io.gravitee.exchange.api.command.Command; import io.gravitee.exchange.api.command.CommandAdapter; import io.gravitee.exchange.api.command.CommandHandler; @@ -75,7 +74,10 @@ public Completable initialize() { this.targetId = reply.getPayload().getTargetId(); this.active = true; } else { - throw new ChannelInitializationException("Unable to parse hello reply payload"); + throw new WebSocketConnectorException( + String.format("Hello handshake failed: %s", reply.getErrorDetails()), + false + ); } }); })