The current HDFView products can be downloaded at: https://support.hdfgroup.org/products/java/release/download.html HDF Libraries ============================================================================= This release was built and tested with HDF 4.2.13 and HDF5 1.8.19. JDK ============================================================================= This release was built and tested with JDK 1.7. Platforms ============================================================================== This release was built and tested for the following platforms: 64-bit distribution -- runs on 64-bit systems with 64-bit JRE only * Linux * Mac Intel * Windows 32-bit distribution -- runs on 32-bit systems with 32-bit JRE * Windows Changes to the Java Native Interface ============================================================================== * The JNI libraries are now built separately from the HDFView and object libraries. Major Enhancements ============================================================================== * Changed build system from CMake to ANT. * Include the JRE for all packages. Bug Fixes ============================================================================== * HDFView: Various issues with binary and hexadecimal display of integer data types in the Table View have been fixed. (JP - 2015/06/30, JAVA-1901) * HDFView: Compound datatype field, Array of String, not displaying properly. Added check for type of Array and looped over base type. (JDB - 2015/06/30, JAVA-1904) * HDFView: Added simple support for Array of Compounds members inside Compound datatypes. Currently only Compound datatypes with Integer and Float members are supported. (JH - 2016/06/22) * HDFView: Properly display singly-nested compound datatype with enum member. Added check for missing/unknown values in enums. Added check for already-converted enums before passing to convertEnumValueToName. ( - 2016/05/12, JH - 2016/07/08, JAVA-1922) * HDFView: Dataset with compound datatype containing array of strings is not displayed correctly. Problem not reproducible in code base. (JH - 2016/07/08, JAVA-1921) * HDFView: HDFView gives no indication that it cannot read a field in compound array of compound. Added code to display value as "**unsupported**". ( - 2016/05/12, JAVA-1847) * HDFView: HDFView problems with "Save Image As" for JPEG and BMP types. Added check for Color model TYPE_INT_ARGB and converted to TYPE_INT_RGB specifically for these types. (JH - 2016/07/08, JAVA-1908) * HDFView: Problems encountered during TableView open cause odd-looking TableView with no associated data to open. Added check for null table in addDataView. (JH - 2016/07/08, JAVA-1906) * HDFView: Clicking "Help" button in New Dataset Dialog or New Attribute Dialog shows an error. Added check to load file directly from jar file. (JH - 2016/07/08, JAVA-1895) * HDFView: Selecting "Cut" on a dataset, then selecting "Delete" causes delete confirm dialog to be bypassed, immediately deleting the dataset without confirmation and causing any further delete attempts on other datasets to throw HDF5SymbolTableException. Added function to check for this and ask user if they want to delete the dataset instead of moving it. ( - 2016/05/13, JAVA-1850) * HDFView: HDFView didn't transpose/reshape data correctly. Corrected TableView to use opposite indexing since reshape functioned as transpose and vice versa. (JH - 2016/07/11, JAVA-1796) * HDFView: HDFView throws a NegativeSizeException when selecting "Open As" on scalar datasets of type variable-length. Added check for negative datatype size before using it to create arrays. (JH - 2016/07/11, JAVA-1935) * HDFView: HDFView cannot display arrays of variable-length strings in either scalar or compound datasets. Since variable-length strings have no datatype size, added specific check to TableView to directly append the data to the TableView string buffer. (JH - 2016/07/07, JAVA-1936) Limitations / Known Problems ============================================================================== * HDFView compound datasets only allow tabs as separator\delimiter, a csv file must include a tab to be consistent with copy/paste for compound fields. * HDFView updates attribute changes directly to the file. However, the metadata window will only update the values of attributes when focus is changed in the treeview. The metadata window will only show the name change when the file is reloaded. * HDFView does not support undo operations; the editing results go to files and cannot be recovered. * HDFView does not support conversion between HDF4 and HDF5. * HDFView supports only indexed images with RGB color model or 24-bit true color images. * Directly using multiple dimensional arrays causes a performance problem because there is no direct mapping for multiple dimensional arrays between Java and C. * HDF 4 APIs with function pointers are not supported in HDF-Java. * HDF 5 APIs with function pointers are selectively supported in HDF-Java. * Specific to HDF4: -- Deleting an object or attribute from an HDF4 file is not supported. Deleting objects in HDF4 may leave dangling objects or corrupt the file. -- HDFView cannot modify compressed HDF4 SDS if the rank is greater than two because the existing compression algorithms supported by HDF do not allow partial modification to a compressed data stream. -- HDFView cannot modify HDF4 vdata. HDF4 only writes vdata by records. HDF-Java reads data by vdata fields because HDF-Java does not support the data structure of a vdata record. * Specific to HDF5: -- Writing compound data is limited to simple cases. For example, base compound fields that have primitive types such as integers, floats, or characters can be written. HDFView does not write complex compound data. For example, HDFView cannot write a dataset that has a compound datatype with a region reference. -- Writing variable-length data is not supported except for datasets where each data point is a single variable-length string or a one dimensional integer type. -- There is no single JNI function that can handle HDF5 library functions that have different return types for version 1.6 and version 1.8. An additional function has been added to the JNI. For example, * public synchronized static native int H5Tget_size(int type_id) * public synchronized static native long H5Tget_size_long(int type_id) Other Notes ==============================================================================