Hi core-libs-dev,

While tracking down a connectivity issue, we identified that two of our hosts
are unable to talk to each other due to a misconfiguration of the network.

This manifested as:

2017-12-21T11:00:34.840Z DEBUG <> [default-pool-34] 
o.e.j.client.AbstractConnectionPool - Connection 1/32 creation failed
java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716)
        at 
org.eclipse.jetty.io.SelectorManager.doFinishConnect(SelectorManager.java:353)
        at 
org.eclipse.jetty.io.ManagedSelector.processConnect(ManagedSelector.java:157)
...

The message, 'Connection refused', does tell you something -- but it doesn't 
emit
really any information about what actually happened (i.e. host / port of 
refused connection)
that would allow you to track down exactly where it failed.

While the application can generally figure this out (it probably knows where it 
tried to connect)
the SocketChannelImpl could helpfully attach this information to the message, 
rather than relying
on the application to correctly figure out the information at every connect 
point.

What if ConnectException included the attempted hostname / IP / port 
SocketAddress?
java.net.ConnectException: Connection to 'foo.mycorp.com[10.x.x.x]:12345' 
refused
Much more useful!  This could also be extended to various other socket 
exceptions.

Would such a contribution be accepted?
Thanks for considering!

Reply via email to