summaryrefslogtreecommitdiff
path: root/ext/java/java.c
diff options
context:
space:
mode:
authorSam Ruby <rubys@php.net>2000-07-08 10:35:50 +0000
committerSam Ruby <rubys@php.net>2000-07-08 10:35:50 +0000
commitee36612cef33c7b1e18dd83d54e340d5d5f455ab (patch)
tree9d16bd7c74fcb16fb911ff01c4214ee87cda5f13 /ext/java/java.c
parentfd3d84ee52855be0638fa313ac4daf4b63546fc7 (diff)
downloadphp-git-ee36612cef33c7b1e18dd83d54e340d5d5f455ab.tar.gz
Add experimental APIs to get and clear the last exception
Diffstat (limited to 'ext/java/java.c')
-rw-r--r--ext/java/java.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/ext/java/java.c b/ext/java/java.c
index 10ee1391ce..9d0cf7516e 100644
--- a/ext/java/java.c
+++ b/ext/java/java.c
@@ -384,6 +384,36 @@ void java_call_function_handler
/***************************************************************************/
+PHP_FUNCTION(java_last_exception_get)
+{
+ jlong result = 0;
+ jmethodID lastEx;
+
+ (pval*)(long)result = return_value;
+
+ lastEx = (*jenv)->GetStaticMethodID(jenv, php_reflect, "lastException",
+ "(J)V");
+
+ (*jenv)->CallStaticVoidMethod(jenv, php_reflect, lastEx, result);
+}
+
+/***************************************************************************/
+
+PHP_FUNCTION(java_last_exception_clear)
+{
+ jlong result = 0;
+ jmethodID clearEx;
+
+ (pval*)(long)result = return_value;
+
+ clearEx = (*jenv)->GetStaticMethodID(jenv, php_reflect, "clearException",
+ "()V");
+
+ (*jenv)->CallStaticVoidMethod(jenv, php_reflect, clearEx);
+}
+
+/***************************************************************************/
+
static pval _java_getset_property
(zend_property_reference *property_reference, jobjectArray value)
{
@@ -475,6 +505,8 @@ PHP_MSHUTDOWN_FUNCTION(java) {
}
function_entry java_functions[] = {
+ PHP_FE(java_last_exception_get, NULL)
+ PHP_FE(java_last_exception_clear, NULL)
{NULL, NULL, NULL}
};