From de76124bfcb73030696b599a6c6dcd0e54ce751f Mon Sep 17 00:00:00 2001 From: Dan Date: Wed, 13 Dec 2017 09:42:16 -0500 Subject: [PATCH] Add PythonJavaClass special case to subclasscheck. --- jnius/jnius_export_class.pxi | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/jnius/jnius_export_class.pxi b/jnius/jnius_export_class.pxi index 6fcfe07..9d4dd1f 100644 --- a/jnius/jnius_export_class.pxi +++ b/jnius/jnius_export_class.pxi @@ -128,7 +128,15 @@ class MetaJavaClass(MetaJavaBase): if jcs is not None: obj = jcs.j_cls - if NULL != obj: + if NULL == obj: + if isinstance(value, PythonJavaClass): + for interface in getattr(value, '__javainterfaces__', []): + obj = j_env[0].FindClass(j_env, interface) + if obj == NULL: + j_env[0].ExceptionClear(j_env) + elif 0 != j_env[0].IsAssignableFrom(j_env, obj, me.j_cls): + return True + else: if 0 != j_env[0].IsAssignableFrom(j_env, obj, me.j_cls): return True