From 78c6b06f454702e7ce8fe5994873a78d80f27a3b Mon Sep 17 00:00:00 2001 From: rhunk <101876869+rhunk@users.noreply.github.com> Date: Wed, 6 Sep 2023 23:30:29 +0200 Subject: [PATCH] fix(mapper): exclude CppProxy callback classes --- .../rhunk/snapenhance/features/impl/tweaks/AutoSave.kt | 10 +++++----- .../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 index 8ea55d79..5845e852 100644 --- 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 index f5e2904e..9b5dc4af 100644 --- 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()