Using H5Iterate


I'm running into a few issues with H5iterate I'm unable to explain.

1) I set an error handler with H5Eset_auto1, and set a breakpoint there. As
I traverse my file I eventually hit the breakpoint. But if I remove the
error handler, no error message is printed. If I call H5Eprint from within
my registered function in H5Iterate I get a message that my function H5Gopen
is trying to open something that is not a group.

2) My iterating function has the following code:

H5G_stat_t statbuf;

hid_t next;

H5Gget_objinfo (loc_id,name,0,&statbuf);

if(statbuf.type == H5G_GROUP || statbuf.type == H5G_UDLINK) {

   next = H5Gopen (loc_id,name,H5P_DEFAULT); ! here is where the error
handler gets called!


I have used this in dozens of files, but suddenly ran into this problem.
Using HDFViewer the file looks like all my other files.

3) I searched through the examples, and if I use instead the construct in
the example to recursively traverse a file then the error is gone:

H5O_info_t infobuf;

if(infobuf.type == H5O_TYPE_GROUP) {

   next = H5Gopen (loc_id,name,H5P_DEFAULT); ! no problem here


Is there anything wrong with my construct in item (2) above? Aren't these