I would like to raise a new bug report. The J2SE 1.5 ORB exhibits
behavior that was not present in J2SE 1.4.x. In particular it throws the
following exception when a server sends a CLOSE_CONNECTION message and
closes the socket:
=========================
Warning Message seen :
=========================
com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl
handleInput
WARNING: "IOP00410209: (COMM_FAILURE) Connection rebind"
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 209 completed: No
at
com.sun.corba.se.impl.logging.ORBUtilSystemException.connectionRebind
(Unknown Source)
at
com.sun.corba.se.impl.logging.ORBUtilSystemException.connectionRebind
(Unknown Source)
at
com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(U
nknown Source)
at
com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.callback(Un
known Source)
at
com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest
(Unknown Source)
at
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatc
h(Unknown Source)
at
com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.read(Un
known Source)
at com.sun.corba.se.impl.transport.ReaderThreadImpl.doWork(Unknown
Sourc
e)
at
com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.
run(Unknown Source)
Although the message is harmless, the ORB is not supposed to treat this as
an error. Instead it should silently allow the socket to be closed. J2SE
1.4.x does this and we would like to see the correct behaviour reinstated
in J2SE 1.5
We have reproduced the problem in the following system :
SunOS dts-sb-1 5.9 Generic_112233-12 sun4u sparc SUNW,Sun-Blade-1000
Follow the steps to reproduce the problem :
1. Download and install WLS 8.1, platform should not matter, from commerce.bea.com
2. Start the examples server.
3. Using the console change the IIOP idle connection timeout to 5s, you can reach this via Servers->examplesServer->Protocols->IIOP
4. Compile and run the below test program under j2se 1.5.0_x
Test Java Program :
import java.util.Hashtable;
import javax.naming.*;
public class CloseClientTest {
public static void main(String args[]) throws Exception {
Hashtable h = new Hashtable();
h.put(Context.SECURITY_PRINCIPAL, "system");
h.put(Context.SECURITY_CREDENTIALS, "ejb2come");
h.put(Context.PROVIDER_URL, args[0]);
h.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory");
InitialContext ic = new InitialContext(h);
ic.lookup("weblogic/management");
System.out.println("Connected to " + args[0] + " sleeping ...");
Thread.sleep(10000);
}
}
Command to execute :
java -cp . CloseClientTest iiop://localhost:7001
Result :
Clean run with j2se 1.4.2_x and warning Messages are seen as mentioned above with j2se 1.5.0_x for the above test program.
###@###.### 2005-03-04 03:20:03 GMT