harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Zhang" <zhanghuang...@gmail.com>
Subject Re: [classlib][net] The old fix is not complete (was Re: [jira] Updated: (HARMONY-1117) [classlib][net] Harmony implementation of SocketImpl.getFileDescriptor() return real object, but RI return null)
Date Sat, 16 Sep 2006 09:27:24 GMT
Patch was updated.

Robert Hu, I agree with you that re-new fd in close method looks really
strange. But for quick fix, I put the fd initialization code in the
subclass. After all, lots of code in luni/nio modules are involved in fd
issue.

I'll study whether it's feasible to remove "fd initliazation" code from
close method and put the code in "create" method. I also noticed that fd
initialization is a bit random. It appears in many places in luni/nio.  I
may fix the problem with a seperate jira if it's feasible.

Thanks!


On 9/15/06, Andrew Zhang <zhanghuangzhu@gmail.com> wrote:
>
>
>  On 9/14/06, Alexey Petrenko <alexey.a.petrenko@gmail.com> wrote:
> >
> > Yes, it looks like fd field should be initialized by subclass.
> >
> > Andrew, are you going to suggest a new patch?
>
>
>  Yes. :) But I'll take vacation today, and should upload a new patch next
> Monday. :-)
>
> SY, Alexey
> >
> > 2006/9/14, Jimmy, Jing Lv <firepure@gmail.com >:
> > > Andrew Zhang wrote:
> > > > I don't think the fix is complete. The patch only fixed reported
> > bug, but
> > > > introduces new severe bugs.
> > > >
> > > > Because fd would never be initialized after applying the patch.
> > Running all
> > > > tests would also fail with crash.
> > > >
> > >
> > > Yes, fd without initialized may cause a tragedy, all network functions
> > > relay on this.
> > >
> > > > After deleting initialization code in SocketImpl.java, we have to
> > > > initialize
> > > > SocketImpl.fd elsewhere. I suggest add the code into
> > > > PlainSocketImpl.createmethod.  Am I right?
> > > >
> > >
> > > I believe this may be correct. Or we can add a constructor in
> > > PlainSocketImpl, initial fd there.
> > >
> > > > If no one objects, I'll apply a patch to fix this jira. Thanks!
> > > >
> > > > On 8/9/06, Igor V. Stolyarov (JIRA) < jira@apache.org> wrote:
> > > >>
> > > >>     [ http://issues.apache.org/jira/browse/HARMONY-1117?page=all ]
> > > >>
> > > >> Igor V. Stolyarov updated HARMONY-1117:
> > > >> ---------------------------------------
> > > >>
> > > >>    Attachment: Harmony-1117.patch
> > > >>
> > > >> Fix attached
> > > >>
> > > >> > [classlib][net] Harmony implementation of
> > > >> SocketImpl.getFileDescriptor()
> > > >> return real object, but RI return null
> > > >> >
> > > >>
> > ---------------------------------------------------------------------------------------------------------------
> >
> > > >>
> > > >> >
> > > >> >                 Key: HARMONY-1117
> > > >> >                 URL: http://issues.apache.org/jira/browse/HARMONY-1117
> >
> > > >> >             Project: Harmony
> > > >> >          Issue Type: Bug
> > > >> >            Reporter: Igor V. Stolyarov
> > > >> >         Attachments: Harmony-1117.patch
> > > >> >
> > > >> >
> > > >> >  Harmony implementation of SocketImpl.getFileDescriptor() return
> > real
> > > >> object, but RI return null
> > > >> >
> > > >>
> > Test---------------------------------------------------------------------------------------------------
> >
> > > >>
> > > >> > import java.io.*;
> > > >> > import java.net.*;
> > > >> > public class Test {
> > > >> >     public static void main(String[] args) {
> > > >> >        try {
> > > >> >             TestSocketImpl testSocketImpl = new TestSocketImpl();
> > > >> >
> > > >> System.out.println("res="+testSocketImpl.getFileDescriptor()
> > > >> );
> > > >> >        } catch (Exception e) {
> > > >> >            e.printStackTrace();
> > > >> >        }
> > > >> >     }
> > > >> > }
> > > >> > class TestSocketImpl extends SocketImpl {
> > > >> >     public FileDescriptor getFileDescriptor(){
> > > >> >         return super.getFileDescriptor();
> > > >> >     }
> > > >> >     protected void create(boolean arg0) throws IOException {}
> > > >> >     protected void connect(String arg0, int arg1) throws
> > IOException {}
> > > >> >     protected void connect(InetAddress arg0, int arg1) throws
> > > >> IOException {}
> > > >> >     protected void connect(SocketAddress arg0, int arg1) throws
> > > >> IOException {}
> > > >> >     protected void bind(InetAddress arg0, int arg1) throws
> > > >> IOException{}
> > > >> >     protected void listen(int arg0) throws IOException {}
> > > >> >     protected void accept(SocketImpl arg0) throws IOException
{}
> > > >> >     protected InputStream getInputStream() throws IOException
{
> > > >> >         return null;
> > > >> >     }
> > > >> >     protected OutputStream getOutputStream() throws IOException
{
> > > >> >         return null;
> > > >> >     }
> > > >> >     protected int available() throws IOException {
> > > >> >         return 0;
> > > >> >     }
> > > >> >     protected void close() throws IOException {}
> > > >> >     protected void sendUrgentData(int arg0) throws IOException
{}
> >
> > > >> >     public void setOption(int arg0, Object arg1) throws
> > > >> SocketException{}
> > > >> >     public Object getOption(int arg0) throws SocketException
{
> > > >> >         return null;
> > > >> >     }
> > > >> > }
> > > >> >
> > > >>
> > Output------------------------------------------------------------------------------------------------
> > > >>
> > > >> > Harmony:
> > > >> > java version 1.5 (subset)
> > > >> > (c) Copyright 1991, 2006 The Apache Software Foundation or its
> > > >> licensors, as app
> > > >> > licable.
> > > >> > res= java.io.FileDescriptor@6460646
> > > >> > JRockit:
> > > >> > java version "1.5.0"
> > > >> > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64
> > )
> > > >> > BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32,
> > > >> R25.0.0-75, GC:
> > > >> >  System optimized over throughput (initial strategy
> > singleparpar))
> > > >> > res=null
> > > >>
> > > >> --
> > > >> This message is automatically generated by JIRA.
> > > >> -
> > > >> If you think it was sent incorrectly contact one of the
> > administrators:
> > > >> http://issues.apache.org/jira/secure/Administrators.jspa
> > > >> -
> > > >> For more information on JIRA, see:
> > http://www.atlassian.com/software/jira
> > > >>
> > > >>
> > > >>
> > > >
> > > >
> > >
> > >
> > > --
> > >
> > > Best Regards!
> > >
> > > Jimmy, Jing Lv
> > > China Software Development Lab, IBM
> > >
> > > ---------------------------------------------------------------------
> > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> > >
> > >
> >
> >
> > --
> > Alexey A. Petrenko
> > Intel Middleware Products Division
> >
> > ---------------------------------------------------------------------
> > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> >
> >
>
>
> --
>
> Andrew Zhang
>
> China Software Development Lab, IBM
>



-- 
Andrew Zhang
China Software Development Lab, IBM

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message