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 <[EMAIL PROTECTED]> wrote:
On 9/14/06, Alexey Petrenko <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED] >: > > 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) < [EMAIL PROTECTED]> 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= [EMAIL PROTECTED] > > >> > 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: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > Alexey A. Petrenko > Intel Middleware Products Division > > --------------------------------------------------------------------- > 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
-- Andrew Zhang China Software Development Lab, IBM
