Hi Mikhail,
So far as I know, only the socket obtained from SocketChannel returns 0
instead of -1.
If the socket is constructed directly, it returns -1 as spec says. Following
test passes against RI without any problem.
public void test_socket() throws IOException {
Socket s = new Socket();
assertFalse(s.isBound());
assertEquals(-1, s.getLocalPort());
}
Thanks!
On 6/22/06, Mikhail Loenko <[EMAIL PROTECTED]> wrote:
Hi Andrew,
have you noticed, does RI return 0 for any unbound socket or
only for the sockets obtained from SocketChannel?
Thanks,
Mikhail
2006/6/22, Andrew Zhang <[EMAIL PROTECTED]>:
> Hi everybody,
>
> I found a bug of SocketChannel.socket() of RI.
>
> Consider following test case:
>
> public void test_socket() throws IOException {
> SocketChannel sc = SocketChannel.open();
> Socket socket = sc.socket();
> assertFalse(socket.isBound());
> // RI returns 0 instead of -1 here.
> assertEquals(-1, socket.getLocalPort());
> }
>
> RI 1.5 fails while Harmony passes.
>
> "returns the local port number to which this socket is bound or -1 if
the
> socket is not bound yet." That's how spec describes getLocalPort method.
>
> RI returns 0 for an unbound socket, violates spec apparently.
>
> How shall we deal with this bug to bug compatibility?
>
> Any suggestions? Thank you very much!
>
>
> --
> Andrew Zhang
> China Software Development Lab, IBM
>
>
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Andrew Zhang
China Software Development Lab, IBM