2007/4/19, Andrew Zhang <[EMAIL PROTECTED]>:

On 4/19/07, LvJimmy,Jing <[EMAIL PROTECTED]> wrote:
>
> 2007/4/19, Andrew Zhang <[EMAIL PROTECTED]>:
> > On 4/19/07, Ruth Cao <[EMAIL PROTECTED]> wrote:
> > >
> > > Tim Ellison wrote:
> > > > Ruth Cao wrote:
> > > >
> > > >> You are right, Vladimir.
> > > >>
> > > >> It is just because the 'port' variable is set to 8080 and on some
> > > >> machines this port has already been occupied.  The test case will
> pass
> > > >> if we use Support_PortManager.getNextPort() on my side.
> > > >>
> > > >
> > > > Please don't use the PortManager, just open port 0 and let the OS
> > > > allocate a free port.  There are examples in the existing tests.
> > > >
> > > > Regards,
> > > > Tim
> > > >
> > > >
> > > Yes, I agree that we should use port 0 in almost all the test cases.
> > > However, it seems that this test case is a little bit special. It
> > > requires to initialize a ServerSocket to connect 0.0.0.0 after
> > > connecting localhost successfully.  If we use port 0 and 0.0.0.0 at
> the
> > > same time, the ServerSocket constructed will be invalid.
> >
> >
> > Sorry Ruth, what did you mean here? A server socket  will connect to
> > somewhere?
> >
> > Could you please explain the scenario a bit more clearly?
> >
>
> I may explain you the interesting scenario :)
> If we create a ServerSocket with localhost, port X (X is not zero),
> close it,  and create another ServerSocket with 0.0.0.0,port X, this
> process in RI is fine, but Harmony fails.
> If we create a ServerSocket with localhost, port 0, close it,  and
> create another ServerSocket with 0.0.0.0,port 0, this process both
> fails on RI and Harmony when create the second ServerSocket.


Thanks Jimmy, interesting. But  I wrote following test case which  runs
well
against RI:
public void test() throws Exception {
        byte[] localAddress = {127,0,0,1};
        byte[] anyAddress = {0,0,0,0};
        InetAddress address = InetAddress.getByAddress(localAddress);
// create a server socket with localhost, port 0
        ServerSocket server = new ServerSocket(0, 5, address);
// close it
        server.close();
        address = InetAddress.getByAddress(anyAddress);
// create another server socket with 0.0.0.0, 0
        server = new ServerSocket(0, 5, address);
// close it
        server.close();
    }
Did I misuderstand the scenario?


It is just the scenario on the ServerSocket side. Another part of the story
is that the test case creates a Socket as a client to connect the above two
ServerSockets. RI connects both successfully while Harmony fails to connect
the second one.

You see these two process are not the same and so that we can not use
> port 0 in the test.
>
>
> > Thus, shall we assign a rarely-used port (e.g. 50000), or continue
using
> > > Support_PortManager? Any ideas? Suggestions?
> > >
> > > --
> > > Regards,
> > >
> > > Ruth Cao
> > > China Software Development Lab, IBM
> > >
> > >
> > >
> >
> >
> > --
> > Best regards,
> > Andrew Zhang
> >
>
>
> --
>
> Best Regards!
>
> Jimmy, Jing Lv
> China Software Development Lab, IBM
>



--
Best regards,
Andrew Zhang




--
Best regards,

Ruth Cao
China Software Development Lab, IBM

Reply via email to