JAVA IPV6 problem

dieter lin dieter.ccu at gmail.com
Thu Aug 9 15:20:25 PDT 2007


Hi all ,
I'm narrowing down a problem with java.net.SocketException on jdk-1.5.0.12p6,1
FreeBSD RELENG_6 .

uname -a output
FreeBSD dietertw.dyndns.org 6.2-STABLE FreeBSD 6.2-STABLE #4: Thu Aug  2
16:10:39 CST 2007
     root at d dietertw.dyndns.org :/usr/obj/usr/src/sys/dieter:

Here's the error:
    If I use the command "java -Djava.net.preferIPv4Stack=true Check",the
result is right.
   Hoever,  I use the command "setenv JAVA_OPS -
Djava.net.preferIPv4Stack=true" to set environment .
   Then, I use  "the command "java Check" . The error will occur like
following :

java.net.SocketException: Invalid argument
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java
:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.Socket.connect(Socket.java:519)
        at java.net.Socket.connect(Socket.java:469)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:382)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:509)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
        at sun.net.www.http.HttpClient.New(HttpClient.java:304)
        at sun.net.www.http.HttpClient.New(HttpClient.java:316)
        at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(
HttpURLConnection.java:813)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(
HttpURLConnection.java:765)
        at sun.net.www.protocol.http.HttpURLConnection.connect(
HttpURLConnection.java:690)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(
HttpURLConnection.java:934)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java
:367)
        at Check.exists(Check.java:20)
        at Check.main(Check.java:8)


I'm able to reproduce the error with the following code,
import java.net.*;
import java.io.*;
import java.net.*;

public class Check {

public static void main(String s[]) {
    System.out.println(exists("http://127.0.0.1/"));
// System.out.println(exists("http://www.rgagnon.com/pagenotfound.html"));
   }

static boolean exists(String URLName){
  try {
    HttpURLConnection.setFollowRedirects(false);
    // note : you may also need
    //        HttpURLConnection.setInstanceFollowRedirects(false)
    HttpURLConnection con =
       (HttpURLConnection) new URL(URLName).openConnection();
    con.setRequestMethod("HEAD");
    return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
    }
  catch (Exception e) {
       e.printStackTrace();
       return false;
       }
  }
}

Do Anyone meet the same error ?


More information about the freebsd-java mailing list