From 4ee40af86e483ca67f8536e5fc27f7aaf5641ead Mon Sep 17 00:00:00 2001
From: mihostet <michi.hostettler@cern.ch>
Date: Mon, 5 Dec 2022 20:01:26 +0100
Subject: [PATCH] expose implicit conversion from bytes/bytearray to byte[]

---
 stubgenj/_stubgenj.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/stubgenj/_stubgenj.py b/stubgenj/_stubgenj.py
index e23e0d3..b55a134 100644
--- a/stubgenj/_stubgenj.py
+++ b/stubgenj/_stubgenj.py
@@ -697,7 +697,13 @@ def pythonType(javaType: Any, typeVars: Optional[List[TypeVarStr]] = None, isArg
     # Java arrays returned by JPype are of type "JArray", but JArray is not generic. To conserve the type information
     # of the elements, we map them to typing.List for the time being.
     elif isinstance(javaType, GenericArrayType) or javaType.isArray():
-        return TypeStr('typing.List', [pythonType(javaArrayComponentType(javaType), typeVars)])
+        elementType = javaArrayComponentType(javaType)
+        listType = TypeStr('typing.List', [pythonType(elementType, typeVars)])
+        if isArgument and str(elementType) == 'byte':
+            # hack: JPype supports converting bytes/bytearray to byte[] but this is not advertised in hints...
+            return TypeStr('typing.Union', [listType, TypeStr('bytes'), TypeStr('bytearray')])
+        else:
+            return listType
     else:
         return translateTypeName(str(javaType.getName()), implicitConversions=isArgument)
 
-- 
GitLab