[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Sun JVM 1.4.2_8 doesn't work with FC4



Sorry I included the wrong stack trace.  It should have been:

java.net.SocketException: Invalid argument or cannot assign requested address
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:452)
at java.net.Socket.connect(Socket.java:402)
at java.net.Socket.<init>(Socket.java:309)
at java.net.Socket.<init>(Socket.java:153)
at SocketTest.main(SocketTest.java:18)




Brian G. Anderson wrote:

I have installed suns java 1.4.2_08 and 1.5.0_7 using jpackage. I have been using the alternatives command to switch between them. In using 1.4.2 I have run across the following problem where a java program cannot bind to a socket. I have attached the following simple test class to show what is going on.

1. compile this class using javac1.4
2. if you execute it using java 1.4 you will get the following exception :


Exception in thread "main" java.lang.UnsupportedClassVersionError: SocketTest (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)


3. If you execute it using the java 1.5 jvm the program will successfully print the first few bytes of the ssh intro message it prints on port 22 upon first connection.

Its very strange because most everything else about Java seems to work: IO, swing, etc. In fact the first time I saw this problem (though I didn't realize it at the time) was when I ran LimeWire under java 1.4: the UI comes up and everything seems to work, but it never seems to connect to the network. After realizing what the problem might be I restarted LimeWire under 1.5 and it connects fine.

So 1.4.2 has some problem with binding to sockets. Now one might just advise me to use 1.5, but I have a large set of programs that only compile under 1.4 (syntax changes due to enum). The '-source=' argument to javac also doesn't work for me. My current solution is to have the java_sdk alternative set to 1.4 and the java alternative to 1.5, but this is very awkward.

My questions to the community are:
1.  are others seeing this behavior with 1.4.2?
2.  any idea on how to fix it?
3.  any better solution on how to mix a 1.4.2 compiler with a 1.5 JVM

Thanks,

Brian




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]