[
https://issues.apache.org/jira/browse/SCB-905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
YaoHaishi updated SCB-905:
--------------------------
Description:
When provider receives a request that contains illegal path params like "%%E",
an Exception
java.lang.NumberFormatException: For input string: "%E"
is thrown and no response is sent. On consumer side it seems like that the
request connection is hang up until the request timed out.
The root cause is that there is no failure handler to handle the
NumberFormatException. As a result, the request process is interrupted and no
response is returned.
Usually it only happens in EdgeService because for
Router.routeWithRegex(String) the % encoded string is decoded like above, while
for Router.route() the path is not processed in such way. In EdgeService,
routeWithRegex() is usually used, and in normal provide, we use route() instead.
was:
When provider receives a request that contains illegal path params like "%%E",
an Exception
java.lang.NumberFormatException: For input string: "%E"
is thrown and no response is sent. On consumer side it seems like that the
request connection is hang up until the request timed out.
The root cause is that there is no failure handler to handle the
NumberFormatException. As a result, the request process is interrupted and no
response is returned.
Usually it only happens in EdgeService because for
Router.routeWithRegex(String) the % encoded string is decoded like above, while
for Router.route() the path is not processed in such way. In EdgeService
routeWithRegex() is usually used, and in normal provide, we use route() instead.
> Request connection is hang up when request path contains illegal string
> -----------------------------------------------------------------------
>
> Key: SCB-905
> URL: https://issues.apache.org/jira/browse/SCB-905
> Project: Apache ServiceComb
> Issue Type: Bug
> Reporter: YaoHaishi
> Assignee: YaoHaishi
> Priority: Major
>
> When provider receives a request that contains illegal path params like
> "%%E", an Exception
> java.lang.NumberFormatException: For input string: "%E"
> is thrown and no response is sent. On consumer side it seems like that the
> request connection is hang up until the request timed out.
> The root cause is that there is no failure handler to handle the
> NumberFormatException. As a result, the request process is interrupted and no
> response is returned.
> Usually it only happens in EdgeService because for
> Router.routeWithRegex(String) the % encoded string is decoded like above,
> while for Router.route() the path is not processed in such way. In
> EdgeService, routeWithRegex() is usually used, and in normal provide, we use
> route() instead.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)