commit 78c6b06f454702e7ce8fe5994873a78d80f27a3b
parent 03c33e03f63701e966309ad8e4dd20cb2dc4e038
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Wed,  6 Sep 2023 23:30:29 +0200

fix(mapper): exclude CppProxy callback classes

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/features/impl/tweaks/AutoSave.kt | 10+++++-----
Mmapper/src/main/kotlin/me/rhunk/snapmapper/impl/CallbackMapper.kt | 5++++-
2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/features/impl/tweaks/AutoSave.kt b/core/src/main/kotlin/me/rhunk/snapenhance/features/impl/tweaks/AutoSave.kt @@ -39,12 +39,12 @@ class AutoSave : MessagingRuleFeature("Auto Save", MessagingRuleType.AUTO_SAVE, if (messageLogger.isMessageRemoved(conversationId.toString(), message.orderKey)) return if (message.messageState != MessageState.COMMITTED) return - val callback = CallbackBuilder(callbackClass) - .override("onError") { - context.log.warn("Error saving message $messageId") - }.build() - runCatching { + val callback = CallbackBuilder(callbackClass) + .override("onError") { + context.log.warn("Error saving message $messageId") + }.build() + updateMessageMethod.invoke( context.feature(Messaging::class).conversationManager, conversationId.instanceNonNull(), diff --git a/mapper/src/main/kotlin/me/rhunk/snapmapper/impl/CallbackMapper.kt b/mapper/src/main/kotlin/me/rhunk/snapmapper/impl/CallbackMapper.kt @@ -12,7 +12,10 @@ class CallbackMapper : AbstractClassMapper() { if (clazz.superclass == null) return@filter false val superclassName = clazz.getSuperClassName()!! - if ((!superclassName.endsWith("Callback") && !superclassName.endsWith("Delegate")) || superclassName.endsWith("\$Callback")) return@filter false + if ((!superclassName.endsWith("Callback") && !superclassName.endsWith("Delegate")) + || superclassName.endsWith("\$Callback")) return@filter false + + if (clazz.getClassName().endsWith("\$CppProxy")) return@filter false val superClass = context.getClass(clazz.superclass) ?: return@filter false !superClass.isFinal()