Thank you, John! Turns out there was a UUID attribute being stored as a 128-bit
integer that was causing problems. I was able to move past that error by
re-writing the file without the UUID attr for now.
From: John Caron <jcaron1129@xxxxxxxxx>
Date: Friday, March 12, 2021 at 10:23 PM
To: David Kegley <kegs@xxxxxx>
Cc: "netcdf-java@xxxxxxxxxxxxxxxx" <netcdf-java@xxxxxxxxxxxxxxxx>
Subject: Re: [netcdf-java] NullPointerException while parsing hdf5 header
On the face of it, you have a file with a 16 byte integer type, which is not
supported in Java.
On Fri, Mar 12, 2021 at 9:02 AM David Kegley <kegs@xxxxxx<mailto:kegs@xxxxxx>>
wrote:
Hi All,
I’m attempting to parse a HDF5 file using the netcdf-java library and I’m
getting the following NullPointer exception while parsing the file header.
[main] WARN ucar.nc2.iosp.hdf5.H5header - HDF5 file /tmp/data.h5 not handling
hdf integer type (0) with size= 16
java.io.IOException: java.lang.NullPointerException
at ucar.nc2.NetcdfFile.open(NetcdfFile.java:384)
at ucar.nc2.NetcdfFile.open(NetcdfFile.java:343)
at ucar.nc2.NetcdfFile.open(NetcdfFile.java:326)
at ucar.nc2.NetcdfFile.open(NetcdfFile.java:312)
at gov.noaa.pfel.coastwatch.griddata.NcHelper.openFile(NcHelper.java:712)
at gov.noaa.pfel.coastwatch.griddata.NcHelper.ncdump(NcHelper.java:104)
at
gov.noaa.pfel.erddap.dataset.EDDTableFromMultidimNcFiles.generateDatasetsXml(EDDTableFromMultidimNcFiles.java:228)
at gov.noaa.pfel.erddap.GenerateDatasetsXml.doIt(GenerateDatasetsXml.java:656)
at gov.noaa.pfel.erddap.GenerateDatasetsXml.main(GenerateDatasetsXml.java:974)
Caused by: java.lang.NullPointerException
at ucar.nc2.iosp.hdf5.H5header.readAttributeData(H5header.java:1154)
at ucar.nc2.iosp.hdf5.H5header.makeAttribute(H5header.java:1002)
at ucar.nc2.iosp.hdf5.H5header.makeAttributes(H5header.java:978)
at ucar.nc2.iosp.hdf5.H5header.makeNetcdfGroup(H5header.java:562)
at ucar.nc2.iosp.hdf5.H5header.makeNetcdfGroup(H5header.java:488)
at ucar.nc2.iosp.hdf5.H5header.read(H5header.java:197)
at ucar.nc2.iosp.hdf5.H5iosp.open(H5iosp.java:108)
at ucar.nc2.NetcdfFile.<init>(NetcdfFile.java:1590)
at ucar.nc2.NetcdfFile.open(NetcdfFile.java:782)
at ucar.nc2.NetcdfFile.open(NetcdfFile.java:381)
... 8 more
The version info from my netcdf-java jar manifest:
Manifest-Version: 1.0
Implementation-Title: CDM core library
Implementation-Version: 5.3.3
Built-By: ubuntu
Implementation-Vendor-Id: edu.ucar
Implementation-URL: https://docs.unidata.ucar.edu/thredds/netcdf-java/
5.3/userguide/index.html
Created-By: Gradle 3.5.1
Build-Jdk: 1.8.0_161
Built-On: 2020-06-17T05:48:56+0000
Implementation-Vendor: UCAR/Unidata
Main-Class: ucar.nc2.NCdumpW
Additional background:
I’m using the ERDDAP toolkit (https://github.com/BobSimons/erddap/tree/v2.11)
which utilizes this library, so I’m not calling these methods directly myself.
ERDDAP docker image: axiom/docker-erddap:2.11
The same hdf5 file can be parsed successfully using h5ls:
$ h5ls -frv /tmp/data.h5
Opened "/tmp/data.h5" with sec2 driver.
…
Any thoughts on this would be very helpful. I’m not very familiar with this
library so if I’m overlooking any relevant details for debugging then please
let me know.
Unfortunately I cannot share the hdf5 file itself or its schema
Thanks!
David
_______________________________________________
NOTE: All exchanges posted to Unidata maintained email lists are
recorded in the Unidata inquiry tracking system and made publicly
available through the web. Users who post to any of the lists we
maintain are reminded to remove any personal information that they
do not want to be made public.
netcdf-java mailing list
netcdf-java@xxxxxxxxxxxxxxxx<mailto:netcdf-java@xxxxxxxxxxxxxxxx>
For list information or to unsubscribe, visit:
https://www.unidata.ucar.edu/mailing_lists/