wso2 / product-ei

An open source, a high-performance hybrid integration platform that allows developers quick integration with any application, data, or system.
https://wso2.com/integration/
Apache License 2.0
374 stars 280 forks source link

Incorrect error message given #2159

Closed shavidissa closed 1 month ago

shavidissa commented 6 years ago

Description: The endpoint URL had an extra space in it. Example: http://localhost:9090/grandoaks/categories/{uri.var.category}/reserve

The error thrown due to it is given below (in the msf4j profile):

[2018-05-09 14:51:22,506]  WARN {org.wso2.msf4j.internal.MSF4JMessageProcessor} - Unmapped exception java.lang.IllegalArgumentException: Illegal character in path at index 22: /grandoaks/categories/{uri.var.category}/reserve
    at java.net.URI.create(URI.java:852)
    at org.wso2.msf4j.internal.router.MicroserviceMetadata.getDestinationMethod(MicroserviceMetadata.java:153)
    at org.wso2.msf4j.internal.MSF4JMessageProcessor.dispatchMethod(MSF4JMessageProcessor.java:135)
    at org.wso2.msf4j.internal.MSF4JMessageProcessor.lambda$receive$26(MSF4JMessageProcessor.java:86)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.URISyntaxException: Illegal character in path at index 22: /grandoaks/categories/{uri.var.category}/reserve
    at java.net.URI$Parser.fail(URI.java:2848)
    at java.net.URI$Parser.checkChars(URI.java:3021)
    at java.net.URI$Parser.parseHierarchical(URI.java:3105)
    at java.net.URI$Parser.parse(URI.java:3063)
    at java.net.URI.<init>(URI.java:588)
    at java.net.URI.create(URI.java:850)
    ... 6 more

This is a misleading and a proper error message depicting the real issue needs to be given.

Affected Product Version:

6.2.0 or later

OS, DB, other environment details and versions:
N/A

Steps to reproduce:

N/A

Related Issues: N/A

wggihan commented 6 years ago

The endpoint URL contains an empty space at the end. Due to this URI template value not replace with the incoming request value. Instead of that "{uri.var.category}" passing to the backend as it is.