Name: jl125535 Date: 06/24/2004
FULL PRODUCT VERSION :
java version "1.5.0-beta3"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta3-b55)
Java HotSpot(TM) Client VM (build 1.5.0-beta3-b55, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Linux io 2.4.20-4GB #1 Tue Jun 15 09:19:00 UTC 2004 i686 unknown unknown GNU/Linux
A DESCRIPTION OF THE PROBLEM :
Starting with the 1.5.0 beta versions we sometimes get a warning (see below) together with a stack trace while making CORBA calls.
We never got these warnings with 1.4.2_04 and earlier versions. Although nothing seams to go wrong when the warning appears we are concerned that there is a problem in the CORBA implementation.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Please use the hello example from java.sun.com/j2se/1.5.0/docs/guide/idl/hello.zip
and replace the file HelloClient.java with the code below and start orbd,
HelloServer and HelloClient as written in the documentation for this example.
My modified client will shutdown the server, tell the user to restart the
server within the next 20 seconds (which should be done). After the delay the
sayHello() method is called again (using the no longer valid object
reference). Since org.omg.CORBA.SystemException is caught I would expect that
nothing should be printed to stdout (which is not the case).
HelloClient.java:
import HelloApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
public class HelloClient
{
static Hello helloImpl;
public static void main(String args[])
{
try{
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// get the root naming context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
// Use NamingContextExt instead of NamingContext. This is
// part of the Interoperable naming Service.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
// resolve the Object Reference in Naming
String name = "Hello";
helloImpl = HelloHelper.narrow(ncRef.resolve_str(name));
System.out.println("Obtained a handle on server object: "
+ helloImpl);
try {
System.out.println(helloImpl.sayHello());
} catch (org.omg.CORBA.SystemException ex) {
}
// Shutdown server
helloImpl.shutdown();
// Tell user to restart the HelloServer
System.out.println(
"Please restart HelloServer within the next 20 seconds");
// Sleep some time
Thread.sleep(20000);
try {
// Use a no longer valid object reference to call server again
System.out.println(
"\nUse a no longer valid object reference to call"
+ " server again.\nSince org.omg.CORBA.SystemException"
+ " is caught nothing should\nbe printed to stdout"
+ " which is not the case as can be seen below.\n");
System.out.println(helloImpl.sayHello());
} catch (org.omg.CORBA.SystemException ex) {
// Catch all SystemExceptions
// If everything works as expected nothing should be printed
// to stdout.
}
} catch (Exception e) {
System.out.println("ERROR : " + e) ;
e.printStackTrace(System.out);
}
}
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No warnings are printed when using CORBA.
ACTUAL -
A warning together with a stack trace is printed when making CORBA calls.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
WARNING: ORBUTIL.connectionRebind
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 209 completed: No
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectionRebind(ORBUtilSystemException.java:1936)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectionRebind(ORBUtilSystemException.java:1958)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:797)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.callback(MessageBase.java:807)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:665)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:375)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:950)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:394)
Jun 18, 2004 11:02:36 AM com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl handleInput
REPRODUCIBILITY :
This bug can be reproduced often.
Release Regression From : 1.4.2
The above release value was the last known release where this
bug was known to work. Since then there has been a regression.
(Incident Review ID: 280485)
======================================================================
###@###.### 2004-06-28