From aedbb0447c0bdd1be4c7c387f37d737c8e2cb002 Mon Sep 17 00:00:00 2001 From: xiaofei Date: Wed, 31 Dec 2025 09:24:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(quickjs):=20=E4=BF=AE=E5=A4=8DJS=E7=88=AC?= =?UTF-8?q?=E8=99=AB=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6=E7=9A=84=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E5=92=8C=E7=A9=BA=E6=8C=87=E9=92=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对`quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java`进行了两处修改: 1. 修复了在`init`方法中解析`ext`参数时可能出现的`QuickJSException: Must be call same thread`异常。通过将`ctx.parse(extend)`调用移至`submit()`中,确保其在正确的线程执行。 2. 在`createFun`方法中增加了对`dex`对象的空指针检查,避免了在配置文件中未提供`jar`时引发的`NullPointerException`。 --- quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java b/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java index a63df6f31..1785e00f8 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/crawler/Spider.java @@ -59,7 +59,7 @@ public class Spider extends com.github.catvod.crawler.Spider { public void init(Context context, String extend) throws Exception { initializeJS(); if (cat) call("init", submit(() -> cfg(extend)).get()); - else call("init", Json.isObj(extend) ? ctx.parse(extend) : extend); + else call("init", Json.isObj(extend) ? submit(() -> ctx.parse(extend)).get() : extend); } @Override @@ -179,6 +179,7 @@ public class Spider extends com.github.catvod.crawler.Spider { private void createFun() { try { Global.create(ctx, executor); + if (dex == null) return; Class clz = dex.loadClass("com.github.catvod.js.Function"); clz.getDeclaredConstructor(QuickJSContext.class).newInstance(ctx); } catch (Throwable e) {