-
Bug
-
Resolution: Not an Issue
-
P3
-
None
-
1.4.0
-
x86
-
linux
Name: nt126004 Date: 09/05/2001
java version "1.4.0-beta2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta2-b77)
Java HotSpot(TM) Client VM (build 1.4.0-beta2-b77, mixed mode)
A NullPointerException is thrown when the method
ORB.resolve_initial_references() is called and a non jdk nameserver like
omniNames is used.
1. Exact steps to reproduce the problem:
- Obtain a copy of OmniORB3 at:
http://www.uk.research.att.com/omniORB
- Run OmniORB3 nameserver omniNames:
omniNames -start 12345 -logdir /tmp
- Compile and run your example NameClientList.java
2. Java SOURCE CODE that demonstrates the problem:
import java.util.Properties;
import org.omg.CORBA.*;
import org.omg.CosNaming.*;
public class NameClientList
{
public static void main(String args[])
{
try {
Properties props = new Properties();
props.put("org.omg.CORBA.ORBInitialPort", "12345");
ORB orb = ORB.init(args, props);
NamingContext nc = NamingContextHelper.narrow(
orb.resolve_initial_references("NameService"));
BindingListHolder bl = new BindingListHolder();
BindingIteratorHolder blIt= new BindingIteratorHolder();
nc.list(1000, bl, blIt);
Binding bindings[] = bl.value;
if (bindings.length == 0) return;
for (int i=0; i < bindings.length; i++) {
// get the object reference for each binding
org.omg.CORBA.Object obj = nc.resolve(bindings[i].binding_name);
String objStr = orb.object_to_string(obj);
int lastIx = bindings[i].binding_name.length-1;
// check to see if this is a naming context
if (bindings[i].binding_type == BindingType.ncontext) {
System.out.println( "Context: " +
bindings[i].binding_name[lastIx].id);
} else {
System.out.println("Object: " +
bindings[i].binding_name[lastIx].id);
}
}
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
}
3. Exact text of any error message(s) that appeared:
- Using the j2sdk1.4.0 beta2:
/usr/local/java/j2sdk1.4.0_beta2/bin/java NameClientList
java.lang.NullPointerException
at
com.sun.corba.se.internal.iiop.IIOPConnection.getResponse(IIOPConnection.java:641)
at
com.sun.corba.se.internal.iiop.IIOPOutputStream.invoke(IIOPOutputStream.java:124)
at
com.sun.corba.se.internal.iiop.ClientRequestImpl.invoke(ClientRequestImpl.java:79)
at
com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:228)
at
com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:270)
at
com.sun.corba.se.internal.corba.InitialNamingClient.resolve(InitialNamingClient.java:1019)
at
com.sun.corba.se.internal.corba.InitialNamingClient.resolveUsingBootstrapProtocol(InitialNamingClient.java:690)
at
com.sun.corba.se.internal.corba.InitialNamingClient.cachedInitialReferences(InitialNamingClient.java:1088)
at
com.sun.corba.se.internal.corba.InitialNamingClient.resolve_initial_references(InitialNamingClient.java:981)
at
com.sun.corba.se.internal.corba.ORB.resolve_initial_references(ORB.java:2358)
at NameClientList.main(NameClientList.java:15)
- Using the j2sdk1.4.0 beta1 (build 1.4.0-beta-b65) works without problems
(Review ID: 131251)
======================================================================