From cebd463d58041be58edfe0f54d20559a7c13c62f Mon Sep 17 00:00:00 2001 From: redkale Date: Mon, 12 Aug 2024 20:25:55 +0800 Subject: [PATCH] =?UTF-8?q?MessageAgent=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- src/main/java/org/redkale/mq/spi/MessageAgent.java | 14 ++++---------- .../org/redkale/mq/spi/MessageAsmMethodBoost.java | 8 ++++++-- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/pom.xml b/pom.xml index b8acc94aa..8df3f5257 100644 --- a/pom.xml +++ b/pom.xml @@ -171,7 +171,7 @@ - check + apply compile diff --git a/src/main/java/org/redkale/mq/spi/MessageAgent.java b/src/main/java/org/redkale/mq/spi/MessageAgent.java index f3ab1d6c1..5341ed696 100644 --- a/src/main/java/org/redkale/mq/spi/MessageAgent.java +++ b/src/main/java/org/redkale/mq/spi/MessageAgent.java @@ -7,7 +7,6 @@ package org.redkale.mq.spi; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; -import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; @@ -554,17 +553,12 @@ public abstract class MessageAgent implements MessageManager { MessageConsumer m = this.consumer; return messageAgent.submit(() -> { Traces.computeIfAbsent(traceid); + T msg = null; try { - m.onMessage(context, (T) c.convertFrom(messageType, message)); + msg = (T) c.convertFrom(messageType, message); + m.onMessage(context, msg); } catch (Throwable t) { - messageAgent - .getLogger() - .log( - Level.SEVERE, - m.getClass().getSimpleName() - + " onMessage error, topic: " + context.getTopic() - + ", messages: " + new String(message, StandardCharsets.UTF_8), - t); + messageAgent.getLogger().log(Level.SEVERE, "MessageConsumer.onMessage error, message: " + msg, t); } Traces.removeTraceid(); }); diff --git a/src/main/java/org/redkale/mq/spi/MessageAsmMethodBoost.java b/src/main/java/org/redkale/mq/spi/MessageAsmMethodBoost.java index f2aefc141..32747c971 100644 --- a/src/main/java/org/redkale/mq/spi/MessageAsmMethodBoost.java +++ b/src/main/java/org/redkale/mq/spi/MessageAsmMethodBoost.java @@ -340,8 +340,12 @@ public class MessageAsmMethodBoost extends AsmMethodBoost { try { if (Utility.isNotEmpty(consumerBytes)) { if (newLoader == null) { - newLoader = new RedkaleClassLoader.DynBytesClassLoader( - classLoader == null ? Thread.currentThread().getContextClassLoader() : classLoader); + if (classLoader instanceof RedkaleClassLoader.DynBytesClassLoader) { + newLoader = (RedkaleClassLoader.DynBytesClassLoader) classLoader; + } else { + newLoader = new RedkaleClassLoader.DynBytesClassLoader( + classLoader == null ? Thread.currentThread().getContextClassLoader() : classLoader); + } } List> consumers = new ArrayList<>(); consumerBytes.forEach((clzName, bytes) -> {