From 9b9aa128d92e9512cb00559e99dce9c8de726ed7 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sun, 2 Jul 2023 13:54:16 +0200 Subject: GlueGen JavaCallback: CMethodBindingEmitter: Check, describe & clear exception if occurring - we must assume async off-thread source in general Covered by unit tests now --- src/java/com/jogamp/gluegen/CMethodBindingEmitter.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/java/com') diff --git a/src/java/com/jogamp/gluegen/CMethodBindingEmitter.java b/src/java/com/jogamp/gluegen/CMethodBindingEmitter.java index fc65fb4..c1b175f 100644 --- a/src/java/com/jogamp/gluegen/CMethodBindingEmitter.java +++ b/src/java/com/jogamp/gluegen/CMethodBindingEmitter.java @@ -409,6 +409,11 @@ public class CMethodBindingEmitter extends FunctionEmitter { // javaCallback.cbFuncCEmitter.emitBodyPassCArguments(); jcbCMethodEmitter.emitJavaCallbackBodyPassJavaArguments(javaCallback, "cb->userParam"); unit.emitln(");"); + unit.emitln(" if( (*env)->ExceptionCheck(env) ) {"); + unit.emitln(" fprintf(stderr, \"Info: Callback '"+jcbFriendlyBasename+"': Exception in Java Callback caught:\\n\");"); + unit.emitln(" (*env)->ExceptionDescribe(env);"); + unit.emitln(" (*env)->ExceptionClear(env);"); + unit.emitln(" }"); // javaCallback.cbFuncCEmitter.emitBodyUserVariableAssignments(); // javaCallback.cbFuncCEmitter.emitBodyVariablePostCallCleanup(); -- cgit v1.2.3