Hi All,

I am wondering if it would be possible to make a minor improvement to the
way *java.net.Socket* reports connectivity errors and incorporate the
attempted address, port and the timeout used into the exception message.

The current implementation emits a generic error message, which is not that
helpful when one is operating a _large_ application. (Consider e.g. Big
Data or complex legacy systems written by someone else).

java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at Sample.main(Sample.java:9)


I have looked into the JDK code base and implemented a patch that reports
the address, port and timeout used in the error message without touching
any native parts (see attached patch file). I have tested this (created my
own build of the JDK and run a sample application against it) and it seems
to work properly.

Would it be possible to incorporate this change into the official JDK code
base? I do believe it would help a lot of people out there.

Based on my understanding, once I have signed the OCA, I should simply
write an email to the group and request a sponsor to pick up this issue.
Could someone help me with this?

Thank you,
Peter

Attachment: socket.patch
Description: Binary data

Reply via email to