scalecube / scalecube-gateway

ScaleCube API Gateway is the single entry point for service consumers. handles incoming requests and proxy/route to the appropriate microservice instance.
Apache License 2.0
18 stars 7 forks source link

NPE when sending bad request with null qualifier #184

Closed artem-v closed 2 years ago

artem-v commented 3 years ago

Motivation

Get rid of huge stack trace with NPE when sending bad request.

Description

NPE when sending bad request: e.g sid=null and qualifier=null. Then following stack shall happen with NullPointerException:

at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onError(FluxMapFuseable.java:334) ~[reactor-core-3.4.5.jar:3.4.5]
    at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onError(FluxMapFuseable.java:334) ~[reactor-core-3.4.5.jar:3.4.5]
    at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onError(FluxMapFuseable.java:334) ~[reactor-core-3.4.5.jar:3.4.5]
    at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onError(FluxPeekFuseable.java:553) ~[reactor-core-3.4.5.jar:3.4.5]
    at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:250) ~[reactor-core-3.4.5.jar:3.4.5]
    at io.scalecube.services.gateway.ws.WebsocketGatewayAcceptor.lambda$onRequest$15(WebsocketGatewayAcceptor.java:178) ~[scalecube-services-gateway-netty-2.10.8.jar:?]
    at io.scalecube.services.gateway.ws.GatewayMessages.toErrorResponse(GatewayMessages.java:44) ~[scalecube-services-gateway-netty-2.10.8.jar:?]
    at io.scalecube.services.exceptions.DefaultErrorMapper.toMessage(DefaultErrorMapper.java:66) ~[scalecube-services-api-2.10.18.jar:?]
    at io.scalecube.services.api.ServiceMessage.error(ServiceMessage.java:70) ~[scalecube-services-api-2.10.18.jar:?]
    at io.scalecube.services.api.ServiceMessage$Builder.qualifier(ServiceMessage.java:311) ~[scalecube-services-api-2.10.18.jar:?]