Skip to content

Commit 544e343

Browse files
committed
clear exceptions for callback
1 parent 72a7368 commit 544e343

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

Sources/SwiftJavaRuntimeSupport/_JNIMethodIDCache.swift

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,18 @@ public final class _JNIMethodIDCache: Sendable {
5151
if let jniClass = environment.interface.FindClass(environment, className) {
5252
clazz = environment.interface.NewGlobalRef(environment, jniClass)!
5353
self.javaObjectHolder = nil
54-
} else if let javaClass = try? JNI.shared.applicationClassLoader.loadClass(
55-
className.replacingOccurrences(of: "/", with: ".")
56-
) {
57-
clazz = javaClass.javaThis
58-
self.javaObjectHolder = javaClass.javaHolder
5954
} else {
60-
fatalError("Class \(className) could not be found!")
55+
// Clear any ClassNotFound exceptions from FindClass
56+
environment.interface.ExceptionClear(environment)
57+
58+
if let javaClass = try? JNI.shared.applicationClassLoader.loadClass(
59+
className.replacingOccurrences(of: "/", with: ".")
60+
) {
61+
clazz = javaClass.javaThis
62+
self.javaObjectHolder = javaClass.javaHolder
63+
} else {
64+
fatalError("Class \(className) could not be found!")
65+
}
6166
}
6267

6368
self._class = clazz

0 commit comments

Comments
 (0)