void traverse(Context ctx) {
    NamingEnumeration bindings =
	ctx.listBindings("");
    while (bindings.hasMore()) {
	Binding binding = (Binding)
	    bindings.next();
	Object o = binding.getObject();

	// Do something with object...

	if (o instanceof Context)
	    traverse((Context)o);
    }
}