Help request with Java 3.3.2


#1

Greetings,
We have a Java application, and we were using the old 2.6.1 HDF Java libraries for our day-to-day activity. But recently due to some changing requirements, we have to change it to 3.3.2. We have an ETL process which consists of number of scripts that perform read/write functions (mostly read) to HDF5 files. ETL is running on Linux environment (tens of nodes) and it is working completely fine with 2.6.1 version. But, with 3.3.2 version, it’s throwing out several errors when trying to read HDF5 files. However, the odd thing is that it DOES read the attributes but dumps out errors related to C libraries.

Here are some of the log errors:

INFO | jvm 1 || getting the location:/SETTINGS/CHANNEL_01/LOCATION
INFO | jvm 1 || HDF5-DIAG: Error detected in HDF5 (1.8.19) thread 0:
INFO | jvm 1 || #000: /scr/home/buildbot/buildbot/kituo-slave/hdf518-StdRelease-code-centos7/build/hdfsrc/src/H5A.c line
474 in H5Aopen_by_name(): can’t open attribute
INFO | jvm 1 || major: Attribute
INFO | jvm 1 || minor: Can’t open object

INFO | jvm 1 || #001: /scr/home/buildbot/buildbot/kituo-slave/hdf518-StdRelease-code-centos7/build/hdfsrc/src/H5Aint.c li
ne 454 in H5A_open_by_name(): unable to load attribute info from object header
INFO | jvm 1 || major: Attribute
INFO | jvm 1 || minor: Unable to initialize object

INFO | jvm 1 || #002: /scr/home/buildbot/buildbot/kituo-slave/hdf518-StdRelease-code-centos7/build/hdfsrc/src/H5Oattribut
e.c line 535 in H5O_attr_open_by_name(): can’t locate attribute: ‘PALETTE’
INFO | jvm 1 || major: Attribute
INFO | jvm 1 || minor: Object not found
INFO | jvm 1 || getPaletteRefs(): Palette attribute search failed: Expected
INFO | jvm 1 || hdf.hdf5lib.exceptions.HDF5AttributeException: Object not found
INFO | jvm 1 || at hdf.hdf5lib.H5._H5Aopen_by_name(Native Method)
INFO | jvm 1 || at hdf.hdf5lib.H5.H5Aopen_by_name(H5.java:1064)
INFO | jvm 1 || at hdf.object.h5.H5ScalarDS.getPaletteRefs(Unknown Source)
INFO | jvm 1 || at hdf.object.h5.H5ScalarDS.init(Unknown Source)

INFO | jvm 1 | | init(): H5Tget_class: 3 is Array 10
INFO | jvm 1 | | HDF5-DIAG: Error detected in HDF5 (1.8.19) thread 0:
INFO | jvm 1 | | #000: /scr/home/buildbot/buildbot/kituo-slave/hdf518-StdRelease-code-centos7/build/hdfsrc/src/H5F.c line
701 in H5Fflush(): not a file or file object
INFO | jvm 1 | | major: Invalid arguments to routine
INFO | jvm 1 | | minor: Inappropriate type
INFO | jvm 1 | | close(): H5Fflush(did 1186443) failure:
INFO | jvm 1 | | hdf.hdf5lib.exceptions.HDF5FunctionArgumentException: Inappropriate type
INFO | jvm 1 | | at hdf.hdf5lib.H5.H5Fflush(Native Method)

Any help on this matter would be greatly appreciated.


#2

3.3 hdfjava added exception handling and reporting. This is likely what you are running into, they were always there, just being ignored.

Also, hdfjava would always check for image attributes by name, if a dataset was opened and those log errors are a result of blindly calling H5Aget_attribute_by_name.

Allen