summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2018-03-13 22:21:02 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2018-03-13 22:21:10 (GMT)
commitb5867a05a7adf5d1c89721bf42a5bbaddb47dbd9 (patch)
tree3e5e1e7e0703cf29b831d9ed96e9b2a57e262f53
parent9247388c3d14510341ea3f07847ce2cbb6e44a8e (diff)
downloadhdf5-b5867a05a7adf5d1c89721bf42a5bbaddb47dbd9.zip
hdf5-b5867a05a7adf5d1c89721bf42a5bbaddb47dbd9.tar.gz
hdf5-b5867a05a7adf5d1c89721bf42a5bbaddb47dbd9.tar.bz2
HDFFV-10412 add error on function for Java
-rw-r--r--java/src/hdf/hdf5lib/H5.java8
-rw-r--r--java/src/jni/exceptionImp.c17
-rw-r--r--java/src/jni/exceptionImp.h10
-rw-r--r--java/src/jni/h5util.c3
4 files changed, 37 insertions, 1 deletions
diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java
index 20aa634..9d1aed1 100644
--- a/java/src/hdf/hdf5lib/H5.java
+++ b/java/src/hdf/hdf5lib/H5.java
@@ -424,7 +424,7 @@ public class H5 implements java.io.Serializable {
private synchronized static native int H5dont_atexit() throws HDF5LibraryException;
/**
- * Turn off error handling By default, the C library prints the error stack of the HDF-5 C library on stdout. This
+ * Turn off error handling. By default, the C library prints the error stack of the HDF-5 C library on stdout. This
* behavior may be disabled by calling H5error_off().
*
* @return a non-negative value if successful
@@ -432,6 +432,12 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5error_off();
/**
+ * Turn on error handling. By default, the C library prints the error stack of the HDF-5 C library on stdout. This
+ * behavior may be reenabled by calling H5error_on().
+ */
+ public synchronized static native void H5error_on();
+
+ /**
* H5garbage_collect collects on all free-lists of all types.
*
* @return a non-negative value if successful
diff --git a/java/src/jni/exceptionImp.c b/java/src/jni/exceptionImp.c
index 05c193f..afad5d5 100644
--- a/java/src/jni/exceptionImp.c
+++ b/java/src/jni/exceptionImp.c
@@ -33,6 +33,9 @@ extern "C" {
#include "h5jni.h"
#include "exceptionImp.h"
+extern H5E_auto2_t efunc;
+extern void *edata;
+
/*******************/
/* Local Variables */
@@ -122,10 +125,24 @@ JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5error_1off
(JNIEnv *env, jclass clss)
{
+ H5Eget_auto2(H5E_DEFAULT, &efunc, &edata);
H5Eset_auto2(H5E_DEFAULT, NULL, NULL);
return 0;
} /* end Java_hdf_hdf5lib_H5_H5error_1off() */
+/*
+ * Class: hdf_hdf5lib_exceptions_HDF5Library
+ * Method: H5error_on
+ * Signature: ()V
+ *
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5error_1on
+ (JNIEnv *env, jclass clss)
+{
+ H5Eset_auto2(H5E_DEFAULT, efunc, edata);
+} /* end Java_hdf_hdf5lib_H5_H5error_1on() */
+
/*
* Class: hdf_hdf5lib_exceptions_HDFLibraryException
diff --git a/java/src/jni/exceptionImp.h b/java/src/jni/exceptionImp.h
index cb74602..423e537 100644
--- a/java/src/jni/exceptionImp.h
+++ b/java/src/jni/exceptionImp.h
@@ -31,6 +31,16 @@ JNIEXPORT jint JNICALL
Java_hdf_hdf5lib_H5_H5error_1off
(JNIEnv *env, jclass clss );
+/*
+ * Class: hdf_hdf5lib_exceptions_HDF5Library
+ * Method: H5error_on
+ * Signature: ()V
+ *
+ */
+JNIEXPORT void JNICALL
+Java_hdf_hdf5lib_H5_H5error_1on
+ (JNIEnv *env, jclass clss );
+
/*
* Class: hdf_hdf5lib_exceptions_HDFLibraryException
diff --git a/java/src/jni/h5util.c b/java/src/jni/h5util.c
index bd9fc0f..fdabd76 100644
--- a/java/src/jni/h5util.c
+++ b/java/src/jni/h5util.c
@@ -41,6 +41,9 @@ jobject get_callback;
jobject set_callback;
jobject delete_callback;
+H5E_auto2_t efunc;
+void *edata;
+
/********************/
/* Local Prototypes */
/********************/