diff --git a/micronaut-aws-sdk/src/main/groovy/com/agorapulse/micronaut/aws/apigateway/ws/DefaultMessageSender.java b/micronaut-aws-sdk/src/main/groovy/com/agorapulse/micronaut/aws/apigateway/ws/DefaultMessageSender.java index 312dde1..70dcc3f 100644 --- a/micronaut-aws-sdk/src/main/groovy/com/agorapulse/micronaut/aws/apigateway/ws/DefaultMessageSender.java +++ b/micronaut-aws-sdk/src/main/groovy/com/agorapulse/micronaut/aws/apigateway/ws/DefaultMessageSender.java @@ -64,7 +64,7 @@ public void send(String connectionId, InputStream payload) { @Override public AmazonClientException handle(HttpResponse response) throws Exception { if (response.getStatusCode() == 410) { - return new WebSocketClientGoneException("WebSocket client with id " + connectionId + " is already gone"); + return new WebSocketClientGoneException(connectionId, "WebSocket client with id " + connectionId + " is already gone"); } return new AmazonClientException("Exception publishing messages to WS endpoint " + " POST " + url + " " diff --git a/micronaut-aws-sdk/src/main/groovy/com/agorapulse/micronaut/aws/apigateway/ws/WebSocketClientGoneException.java b/micronaut-aws-sdk/src/main/groovy/com/agorapulse/micronaut/aws/apigateway/ws/WebSocketClientGoneException.java index 3418fed..0669d9b 100644 --- a/micronaut-aws-sdk/src/main/groovy/com/agorapulse/micronaut/aws/apigateway/ws/WebSocketClientGoneException.java +++ b/micronaut-aws-sdk/src/main/groovy/com/agorapulse/micronaut/aws/apigateway/ws/WebSocketClientGoneException.java @@ -4,16 +4,24 @@ public class WebSocketClientGoneException extends AmazonClientException { - public WebSocketClientGoneException(String message, Throwable t) { + private final String connectionId; + + public WebSocketClientGoneException(String connectionId, String message, Throwable t) { super(message, t); + this.connectionId = connectionId; } - public WebSocketClientGoneException(String message) { + public WebSocketClientGoneException(String connectionId, String message) { super(message); + this.connectionId = connectionId; } - public WebSocketClientGoneException(Throwable t) { + public WebSocketClientGoneException(String connectionId, Throwable t) { super(t); + this.connectionId = connectionId; } + public String getConnectionId() { + return connectionId; + } } diff --git a/micronaut-aws-sdk/src/test/groovy/com/agorapulse/micronaut/aws/apigateway/ws/MessageSenderSpec.groovy b/micronaut-aws-sdk/src/test/groovy/com/agorapulse/micronaut/aws/apigateway/ws/MessageSenderSpec.groovy index 2a4e478..f110a80 100644 --- a/micronaut-aws-sdk/src/test/groovy/com/agorapulse/micronaut/aws/apigateway/ws/MessageSenderSpec.groovy +++ b/micronaut-aws-sdk/src/test/groovy/com/agorapulse/micronaut/aws/apigateway/ws/MessageSenderSpec.groovy @@ -58,7 +58,8 @@ class MessageSenderSpec extends Specification { when: defaultSender.send(CONNECTION_ID, PAYLOAD) then: - thrown(WebSocketClientGoneException) + WebSocketClientGoneException e = thrown(WebSocketClientGoneException) + e.connectionId == CONNECTION_ID } void 'test forbidden'() {