Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4720952
Votes 2
Synopsis (so) SocketChannel.socket().getInetAddress() returns null after close
Category java:classes_nio
Reported Against 1.4.2 , hopper-beta
Release Fixed
State 11-Closed, duplicate of 4640544, bug
Priority: 4-Low
Related Bugs 6243057
Submit Date 25-JUL-2002
Description


FULL PRODUCT VERSION :
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-beta-b14)
Java HotSpot(TM) Client VM (build 1.4.1-beta-b14, mixed mode)

FULL OPERATING SYSTEM VERSION :
Windows NT Version 4.0

A DESCRIPTION OF THE PROBLEM :
It is unclear from the documentation of Socket whether
getInetAddress should return null if a socket is closed.
Presumably closed implies "not connected"--which means null
should be returned--but that is not obvious.

With Java 1.4.0, getInetAddress() never returns null.  But
with Java 1.4.1-beta, getInetAddress() returns null if the
socket was created from a channel and then closed; it does
not return null if the socket was created with the old
host/port constructor and then closed.  This could be
considered a bug or just a documentation issue.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the included source code with Java 1.4.0 and 1.4.1-beta
and look at the output.  You will need a working network
connection to establish the sockets.

EXPECTED VERSUS ACTUAL BEHAVIOR :
In the example below, I run the test with Java 1.4.1-beta
and 1.4.0.  It's not clear whether null should be printed in
the "Channel socket address" line.

% java141 -version
java version "1.4.1-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build
1.4.1-beta-b14)
Java HotSpot(TM) Client VM (build 1.4.1-beta-b14, mixed mode)
% java141 UnboundSocketInetAddress
Simple socket address: www.limewire.com/64.61.25.138
Simple channel address: www.limewire.com/64.61.25.138
Channel socket address: www.limewire.com/64.61.25.138
Channel socket address: null

% java140 -version
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build
1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)
% java140 UnboundSocketInetAddress
Simple socket address: www.limewire.com/64.61.25.138
Simple channel address: www.limewire.com/64.61.25.138
Channel socket address: www.limewire.com/64.61.25.138
Channel socket address: www.limewire.com/64.61.25.138

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
import java.io.*;
import java.net.*;
import java.nio.channels.*;

/**
 * Tries to figure out under what conditions Socket.getInetAddress returns null.
 */
public class UnboundSocketInetAddress {
    public static void main(String args[]) {
        //Create socket with old-fashioned constructor.
        try {
            Socket socket=new Socket("www.limewire.com", 80);
            System.out.println("Simple socket address: "
                               +socket.getInetAddress()); //non-null
            socket.close();
            System.out.println("Simple channel address: "
                               +socket.getInetAddress()); //non-null
        } catch (IOException e) {
            System.out.println("Couldn't create socket");
        }

        //Create socket from channel.
        try {
            SocketAddress addr=new InetSocketAddress("www.limewire.com", 80);
            SocketChannel channel=SocketChannel.open(addr);
            Socket socket=channel.socket();
            System.out.println("Channel socket address: "
                               +socket.getInetAddress()); //non-null
            socket.close();
            System.out.println("Channel socket address: "
                               +socket.getInetAddress()); //NULL on 1.4.1
        } catch (IOException e) {
            System.out.println("Couldn't create socket");
        }
        System.out.println();
    }
}

---------- END SOURCE ----------

CUSTOMER WORKAROUND :
Be prepared for null when calling getInetAddress().
Or don't call getInetAddress() if the stream is closed.
(Review ID: 159833) 
======================================================================
Posted Date : 2006-07-22 10:19:14.0
Work Around
N/A
Evaluation
The submitter is correct.  --   xxxxx@xxxxx   2002/12/3
As part of 6505016, the specification for the legacy socket APIs have been updated to specify the required behavior of this and other methods when the socket is closed. As part of the socket-channel completion work (4640544) there has been significant update to the adaptor implementations which means that socket().getInetAddress method will continue to return the remote address after the socket channel is done. Once 4640544 is integrated into jdk7 I will close 4640544 as a dup.
Posted Date : 2007-10-19 12:01:19.0
Comments
  
  Include a link with my name & email   

Submitted On 26-OCT-2005
I discovered a bug after downloading a video from limewire


Submitted On 16-MAY-2006
LimeWire version 4.10.9
Java version 1.5.0_06 from Sun Microsystems Inc.
Windows XP v. 5.1 on x86
Free/total memory: 2795272/4128768

com.limegroup.gnutella.gui.GUILoader$StartupFailedException: invalid update.ver
	at com.limegroup.gnutella.gui.GUILoader.sanityCheck(GUILoader.java:274)
	at com.limegroup.gnutella.gui.GUILoader.load(GUILoader.java:40)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.limegroup.gnutella.gui.Main.main(Main.java:44)

STARTUP ERROR!

-- listing properties --
FILTER_HASH_QUERIES=true
APP_HEIGHT=728
FRACTIONAL_UPTIME=0.009781049
LAST_EXPIRE_TIME=1147746411812
SESSIONS=2
LAST_ACCEPTABLE_BUG_VERSION=4.10.10
EVIL_HOSTS=BearShare 5.2
DIRECTORY_FOR_SAVING_FILES=C:\Documents and Settings\Juron\Shared
UPDATE_DOWNLOAD_DELAY=10000000
NECTIONS=2
RUN_ONCE=true
COUNTRY=
MIN_CONNECT_TIME=7
CLIENT_ID=4E2C4DDA066E88568C6E3296FEEAEC00
LAST_SHUTDOWN_TIME=1108162449656
EVER_ACCEPTED_INCOMING=true
TREE_NODE_PREFIXES=n
SHARE_DOWNLOADED_FILES_IN_NON_SHARED_DIRECTORIES=false
IDLE_CONNECTIONS=2
DAAP_ENABLED=false
PORT=30204
TOTAL_UPTIME=196049
AVERAGE_UPTIME=98024
UPDATE_GIVEUP_FACTOR=24
UNSET_FIREWALLED_FROM_CONNECTBACK=true
FLUSH_DELAY_TIME=256
INSTALLED=true
MAX_SIM_DOWNLOAD=3
UI_LIBRARY_TREE_DIVIDER_LOCATION=124
LAST_GWEBCACHE_FETCH_TIME=1147175611171
UPDATE_DELAY=252000020
WINDOW_Y=0
WINDOW_X=92



FILES IN CURRENT DIRECTORY:
C:\Program Files\limewire\clink.jar
LAST MODIFIED: 1146834564828
SIZE: 307949

C:\Program Files\limewire\commons-httpclient.jar
LAST MODIFIED: 1146834564890
SIZE: 459988

C:\Program Files\limewire\commons-logging.jar
LAST MODIFIED: 1146834564937
SIZE: 59154

C:\Program Files\limewire\commons-net.jar
LAST MODIFIED: 1146834565000
SIZE: 355370

C:\Program Files\limewire\daap.jar
LAST MODIFIED: 1146834565046
SIZE: 311611

C:\Program Files\limewire\GenericWindowsUtils.dll
LAST MODIFIED: 1140126936078
SIZE: 12279

C:\Program Files\limewire\i18n.jar
LAST MODIFIED: 1146834565109
SIZE: 25678

C:\Program Files\limewire\icu4j.jar
LAST MODIFIED: 1146834565171
SIZE: 741440

C:\Program Files\limewire\id3v2.jar
LAST MODIFIED: 1146834565234
SIZE: 94430

C:\Program Files\limewire\jcraft.jar
LAST MODIFIED: 1146834565281
SIZE: 136693

C:\Program Files\limewire\jl011.jar
LAST MODIFIED: 1146834565343
SIZE: 255016

C:\Program Files\limewire\jmdns.jar
LAST MODIFIED: 1146834565375
SIZE: 69306

C:\Program Files\limewire\LimeWire.exe
LAST MODIFIED: 1140126937718
SIZE: 81920

C:\Program Files\limewire\LimeWire.jar
LAST MODIFIED: 1146834564421
SIZE: 6326769

C:\Program Files\limewire\LimeWire20.dll
LAST MODIFIED: 1140126937531
SIZE: 40960

C:\Program Files\limewire\log4j.jar
LAST MODIFIED: 1146834565468
SIZE: 677952

C:\Program Files\limewire\logicrypto.jar
LAST MODIFIED: 1146834565515
SIZE: 227510

C:\Program Files\limewire\looks.jar
LAST MODIFIED: 1146834565593
SIZE: 630634

C:\Program Files\limewire\MessagesBundles.jar
LAST MODIFIED: 1146834564734
SIZE: 2823898

C:\Program Files\limewire\mp3sp14.jar
LAST MODIFIED: 1146834565640
SIZE: 40064

C:\Program Files\limewire\ProgressTabs.jar
LAST MODIFIED: 1146834564765
SIZE: 5786

C:\Program Files\limewire\themes.jar
LAST MODIFIED: 1146834565687
SIZE: 379049

C:\Program Files\limewire\tritonus.jar
LAST MODIFIED: 1146834565734
SIZE: 152711

C:\Program Files\limewire\vorbis.jar
LAST MODIFIED: 1146834565781
SIZE: 27215

C:\Program Files\limewire\WindowsV5PlusUtils.dll
LAST MODIFIED: 1140126937546
SIZE: 12808

C:\Program Files\limewire\xerces.jar
LAST MODIFIED: 1146834565953
SIZE: 2147687

C:\Program Files\limewire\xml-apis.jar
LAST MODIFIED: 1146834566015
SIZE: 207655



Submitted On 16-MAY-2006
LimeWire version 4.10.9
Java version 1.5.0_06 from Sun Microsystems Inc.
Windows XP v. 5.1 on x86
Free/total memory: 2795272/4128768

com.limegroup.gnutella.gui.GUILoader$StartupFailedException: invalid update.ver
	at com.limegroup.gnutella.gui.GUILoader.sanityCheck(GUILoader.java:274)
	at com.limegroup.gnutella.gui.GUILoader.load(GUILoader.java:40)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.limegroup.gnutella.gui.Main.main(Main.java:44)

STARTUP ERROR!

-- listing properties --
FILTER_HASH_QUERIES=true
APP_HEIGHT=728
FRACTIONAL_UPTIME=0.009781049
LAST_EXPIRE_TIME=1147746411812
SESSIONS=2
LAST_ACCEPTABLE_BUG_VERSION=4.10.10
EVIL_HOSTS=BearShare 5.2
DIRECTORY_FOR_SAVING_FILES=C:\Documents and Settings\Juron\Shared
UPDATE_DOWNLOAD_DELAY=10000000
NECTIONS=2
RUN_ONCE=true
COUNTRY=
MIN_CONNECT_TIME=7
CLIENT_ID=4E2C4DDA066E88568C6E3296FEEAEC00
LAST_SHUTDOWN_TIME=1108162449656
EVER_ACCEPTED_INCOMING=true
TREE_NODE_PREFIXES=n
SHARE_DOWNLOADED_FILES_IN_NON_SHARED_DIRECTORIES=false
IDLE_CONNECTIONS=2
DAAP_ENABLED=false
PORT=30204
TOTAL_UPTIME=196049
AVERAGE_UPTIME=98024
UPDATE_GIVEUP_FACTOR=24
UNSET_FIREWALLED_FROM_CONNECTBACK=true
FLUSH_DELAY_TIME=256
INSTALLED=true
MAX_SIM_DOWNLOAD=3
UI_LIBRARY_TREE_DIVIDER_LOCATION=124
LAST_GWEBCACHE_FETCH_TIME=1147175611171
UPDATE_DELAY=252000020
WINDOW_Y=0
WINDOW_X=92



FILES IN CURRENT DIRECTORY:
C:\Program Files\limewire\clink.jar
LAST MODIFIED: 1146834564828
SIZE: 307949

C:\Program Files\limewire\commons-httpclient.jar
LAST MODIFIED: 1146834564890
SIZE: 459988

C:\Program Files\limewire\commons-logging.jar
LAST MODIFIED: 1146834564937
SIZE: 59154

C:\Program Files\limewire\commons-net.jar
LAST MODIFIED: 1146834565000
SIZE: 355370

C:\Program Files\limewire\daap.jar
LAST MODIFIED: 1146834565046
SIZE: 311611

C:\Program Files\limewire\GenericWindowsUtils.dll
LAST MODIFIED: 1140126936078
SIZE: 12279

C:\Program Files\limewire\i18n.jar
LAST MODIFIED: 1146834565109
SIZE: 25678

C:\Program Files\limewire\icu4j.jar
LAST MODIFIED: 1146834565171
SIZE: 741440

C:\Program Files\limewire\id3v2.jar
LAST MODIFIED: 1146834565234
SIZE: 94430

C:\Program Files\limewire\jcraft.jar
LAST MODIFIED: 1146834565281
SIZE: 136693

C:\Program Files\limewire\jl011.jar
LAST MODIFIED: 1146834565343
SIZE: 255016

C:\Program Files\limewire\jmdns.jar
LAST MODIFIED: 1146834565375
SIZE: 69306

C:\Program Files\limewire\LimeWire.exe
LAST MODIFIED: 1140126937718
SIZE: 81920

C:\Program Files\limewire\LimeWire.jar
LAST MODIFIED: 1146834564421
SIZE: 6326769

C:\Program Files\limewire\LimeWire20.dll
LAST MODIFIED: 1140126937531
SIZE: 40960

C:\Program Files\limewire\log4j.jar
LAST MODIFIED: 1146834565468
SIZE: 677952

C:\Program Files\limewire\logicrypto.jar
LAST MODIFIED: 1146834565515
SIZE: 227510

C:\Program Files\limewire\looks.jar
LAST MODIFIED: 1146834565593
SIZE: 630634

C:\Program Files\limewire\MessagesBundles.jar
LAST MODIFIED: 1146834564734
SIZE: 2823898

C:\Program Files\limewire\mp3sp14.jar
LAST MODIFIED: 1146834565640
SIZE: 40064

C:\Program Files\limewire\ProgressTabs.jar
LAST MODIFIED: 1146834564765
SIZE: 5786

C:\Program Files\limewire\themes.jar
LAST MODIFIED: 1146834565687
SIZE: 379049

C:\Program Files\limewire\tritonus.jar
LAST MODIFIED: 1146834565734
SIZE: 152711

C:\Program Files\limewire\vorbis.jar
LAST MODIFIED: 1146834565781
SIZE: 27215

C:\Program Files\limewire\WindowsV5PlusUtils.dll
LAST MODIFIED: 1140126937546
SIZE: 12808

C:\Program Files\limewire\xerces.jar
LAST MODIFIED: 1146834565953
SIZE: 2147687

C:\Program Files\limewire\xml-apis.jar
LAST MODIFIED: 1146834566015
SIZE: 207655




PLEASE NOTE: JDK6 is formerly known as Project Mustang