diff --git a/src/main/java/bdv/img/hdf5/HDF5Access.java b/src/main/java/bdv/img/hdf5/HDF5Access.java index 7a54c5ba..354d1aeb 100644 --- a/src/main/java/bdv/img/hdf5/HDF5Access.java +++ b/src/main/java/bdv/img/hdf5/HDF5Access.java @@ -34,6 +34,7 @@ import hdf.hdf5lib.H5; import hdf.hdf5lib.HDF5Constants; import hdf.hdf5lib.exceptions.HDF5LibraryException; +import hdf.hdf5lib.structs.H5O_info_t; import java.io.File; import java.util.LinkedHashMap; import java.util.Map; @@ -57,7 +58,6 @@ import static hdf.hdf5lib.H5.H5open; import static hdf.hdf5lib.HDF5Constants.H5F_ACC_RDONLY; import static hdf.hdf5lib.HDF5Constants.H5O_TYPE_DATASET; -import static hdf.hdf5lib.HDF5Constants.H5O_TYPE_GROUP; import static hdf.hdf5lib.HDF5Constants.H5P_DEFAULT; import static hdf.hdf5lib.HDF5Constants.H5S_SELECT_SET; import static net.imglib2.util.Util.long2int; @@ -153,10 +153,13 @@ public synchronized void clear() private boolean datasetExists( final String pathName ) { + if ( "/".equals( pathName ) ) + return false; + try { - final int objectTypeId = "/".equals( pathName ) ? H5O_TYPE_GROUP : HDFHelper.H5Oget_info_by_name( fileId, pathName, false ).type; - return objectTypeId == H5O_TYPE_DATASET; + final H5O_info_t info = H5.H5Oget_info_by_name( fileId, pathName, HDF5Constants.H5O_INFO_BASIC, HDF5Constants.H5P_DEFAULT ); + return info.type == H5O_TYPE_DATASET; } catch ( HDF5LibraryException e ) {