Azure / azure-relay-java

Azure Relay Java SDK
MIT License
8 stars 9 forks source link

Request with encoded spaces are not handled correctly #82

Closed giventocode closed 1 year ago

giventocode commented 2 years ago

The listener fails to handle URLs with spaces. The client sends the request properly encoded but the hybrid HTTP connection fails to parse the URL and throws an exception.


java.util.concurrent.CompletionException: java.lang.RuntimeException: java.net.URISyntaxException: Illegal character in path at index 68: sb://test.servicebus.windows.net/echo/api/contents/Untitled Folder?type=directory&_=1644956591273
    at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
    at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1739)
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1728)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: java.lang.RuntimeException: java.net.URISyntaxException: Illegal character in path at index 68: sb://test.servicebus.windows.net/echo/api/contents/Untitled Folder?type=directory&_=1644956591273
    at com.microsoft.azure.relay.HybridHttpConnection.invokeRequestHandler(HybridHttpConnection.java:173)
    at com.microsoft.azure.relay.HybridHttpConnection.lambda$processFirstRequestAsync$2(HybridHttpConnection.java:115)
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)
    ... 6 common frames omitted
Caused by: java.net.URISyntaxException: Illegal character in path at index 68: sb://test.servicebus.windows.net/echo/api/contents/Untitled Folder?type=directory&_=1644956591273
    at java.base/java.net.URI$Parser.fail(URI.java:2913)
    at java.base/java.net.URI$Parser.checkChars(URI.java:3084)
    at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3166)
    at java.base/java.net.URI$Parser.parse(URI.java:3114)
    at java.base/java.net.URI.<init>(URI.java:600)
    at com.microsoft.azure.relay.HybridHttpConnection.invokeRequestHandler(HybridHttpConnection.java:170)
    ... 8 common frames omitted