Skip to content

Misleading requests.UnknownHostException: Unknown host null #190

@kaaveland

Description

@kaaveland

Hey!

I just spent a few minutes looking for problems in the entirely wrong place. I'm making a tiny cask-app that calculates fibonacci numbers by using requests.get on version 0.9.0 to itself (for good reasons, I promise!), and I had entered the wrong port number to itself on localhost, leading to this error:

requests.UnknownHostException: Unknown host null in url http://localhost:8088/fib/4
	at requests.Requester$$anon$1.readBytesThrough(Requester.scala:291)
	at geny.Readable.writeBytesTo(Writable.scala:93)
	at geny.Readable.writeBytesTo$(Writable.scala:91)
	at requests.Requester$$anon$1.writeBytesTo(Requester.scala:191)
	at requests.Requester.apply(Requester.scala:140)
	at CamelosoServer$.fib(CamelosoServer.scala:58)
	at CamelosoServer$.$anonfun$1$$anonfun$1(CamelosoServer.scala:65)
	at cask.router.Result$Success.map(Result.scala:21)
	at CamelosoServer$.$anonfun$1(CamelosoServer.scala:65)
	at cask.router.EntryPoint.invoke(EntryPoint.scala:47)
	at cask.router.Decorator$.invoke$$anonfun$2(Decorators.scala:59)
	at cask.endpoints.WebEndpoint.wrapFunction(WebEndpoints.scala:14)
	at cask.endpoints.WebEndpoint.wrapFunction$(WebEndpoints.scala:10)
	at cask.endpoints.get.wrapFunction(WebEndpoints.scala:31)
	at cask.router.Decorator$.invoke(Decorators.scala:52)
	at cask.main.Main$DefaultHandler.handleRequest(Main.scala:123)
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
	at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
	at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1512)
	at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
	at java.base/java.lang.Thread.run(Thread.java:1583)

Downgrading to 0.8.3 gave me this one instead, which made it immediately obvious to me what the problem was:

java.net.ConnectException: Connection refused
	at java.base/sun.nio.ch.Net.pollConnect(Native Method)
	at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682)
	at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:549)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592)
	at java.base/java.net.Socket.connect(Socket.java:751)
	at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:178)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:531)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:636)
	at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:280)
	at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:386)
	at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:408)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1304)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1237)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1123)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1052)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1675)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1599)
	at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:531)
	at requests.Requester$$anon$1.liftedTree1$1(Requester.scala:267)
	at requests.Requester$$anon$1.readBytesThrough(Requester.scala:279)
	at geny.Readable.writeBytesTo(Writable.scala:93)
	at geny.Readable.writeBytesTo$(Writable.scala:91)
	at requests.Requester$$anon$1.writeBytesTo(Requester.scala:164)
	at requests.Requester.apply(Requester.scala:113)
	at CamelosoServer$.fib(CamelosoServer.scala:59)
	at CamelosoServer$.$anonfun$1$$anonfun$1(CamelosoServer.scala:66)
	at cask.router.Result$Success.map(Result.scala:21)
	at CamelosoServer$.$anonfun$1(CamelosoServer.scala:66)
	at cask.router.EntryPoint.invoke(EntryPoint.scala:47)
	at cask.router.Decorator$.invoke$$anonfun$2(Decorators.scala:59)
	at cask.endpoints.WebEndpoint.wrapFunction(WebEndpoints.scala:14)
	at cask.endpoints.WebEndpoint.wrapFunction$(WebEndpoints.scala:10)
	at cask.endpoints.get.wrapFunction(WebEndpoints.scala:31)
	at cask.router.Decorator$.invoke(Decorators.scala:52)
	at cask.main.Main$DefaultHandler.handleRequest(Main.scala:123)
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:395)
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:861)
	at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
	at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1512)
	at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
	at java.base/java.lang.Thread.run(Thread.java:1583)

I'd be happy to take a stab at patching this if you'd like! I'm guessing that 0.9.0 swallows the java.net.ConnectException somewhere.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions