Skip to content

[Bug]: 启动时报错和执行命令的时候报错 #137

@W1ndys

Description

@W1ndys

模块

Core - 渲染 / 模板加载问题

版本号

petpet-onebot-1.0.0-beta3.jar

复现

  • 这个 Bug 是可以被复现的

兼容性问题

  • 这是一个兼容性问题

描述

报错,ai问了一下报错内容是获取不到QQ头像?网络问题吗,但是我网络是正常可用的

运行环境

openjdk 11.0.28 2025-07-15
OpenJDK Runtime Environment (build 11.0.28+6-post-Ubuntu-1ubuntu122.04.1)
OpenJDK 64-Bit Server VM (build 11.0.28+6-post-Ubuntu-1ubuntu122.04.1, mixed mode, sharing)
NapCat 版本 4.8.98
系统是Ubuntu服务器

运行日志

2025-08-18 12:25:28 INFO/Petpet-Onebot: ▌ 已连接到服务器 ┈━═☆
2025-08-18 12:25:28 INFO/BaseHttpServer: HTTP 图像服务器已在端口 2233 上启动
2025-08-18 12:25:28 WARN/TemplateManger: Failed to load template flick
java.lang.IllegalArgumentException: Can not deserialize request with action: swing_twist
        at moe.dituon.petpet.template.fields.ImageFilterTemplate$Companion.getDefaultDeserializer(ImageFilterTemplate.kt:55)
        at moe.dituon.petpet.uitls.SerializerUtilsKt$GlobalJson$1$1$1.invoke(SerializerUtils.kt:14)
        at moe.dituon.petpet.uitls.SerializerUtilsKt$GlobalJson$1$1$1.invoke(SerializerUtils.kt:14)
        at kotlinx.serialization.modules.SerialModuleImpl.getPolymorphic(SerializersModule.kt:167)
        at kotlinx.serialization.internal.AbstractPolymorphicSerializer.findPolymorphicSerializerOrNull(AbstractPolymorphicSerializer.kt:84)
        at kotlinx.serialization.SealedClassSerializer.findPolymorphicSerializerOrNull(SealedSerializer.kt:147)
        at kotlinx.serialization.PolymorphicSerializerKt.findPolymorphicSerializer(PolymorphicSerializer.kt:102)
        at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:86)
        at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeSerializableValue(TreeJsonDecoder.kt:52)
        at kotlinx.serialization.json.internal.TreeJsonDecoderKt.readJson(TreeJsonDecoder.kt:25)
        at kotlinx.serialization.json.Json.decodeFromJsonElement(Json.kt:127)
        at moe.dituon.petpet.template.fields.ImageFilterSerializer.deserialize(ImageFilterTemplate.kt:69)
        at moe.dituon.petpet.template.fields.ImageFilterSerializer.deserialize(ImageFilterTemplate.kt:60)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168)
        at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:538)
        at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)
        at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
        at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
        at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
        at moe.dituon.petpet.template.fields.ImageFilterListSerializer.deserialize(ImageFilterTemplate.kt:93)
        at moe.dituon.petpet.template.fields.ImageFilterListSerializer.deserialize(ImageFilterTemplate.kt:85)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168)
        at moe.dituon.petpet.template.element.AvatarTemplate$$serializer.deserialize(AvatarTemplate.kt:43)
        at moe.dituon.petpet.template.element.AvatarTemplate$$serializer.deserialize(AvatarTemplate.kt:43)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:89)
        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168)
        at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:538)
        at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)
        at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
        at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
        at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)
        at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:168)
        at moe.dituon.petpet.template.PetpetTemplate$$serializer.deserialize(PetpetTemplate.kt:35)
        at moe.dituon.petpet.template.PetpetTemplate$$serializer.deserialize(PetpetTemplate.kt:35)
        at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:69)
        at kotlinx.serialization.json.Json.decodeFromString(Json.kt:107)
        at moe.dituon.petpet.template.PetpetTemplate$Companion.fromJson(PetpetTemplate.kt:87)
        at moe.dituon.petpet.template.PetpetTemplate$Companion.fromJsonFile(PetpetTemplate.kt:95)
        at moe.dituon.petpet.template.PetpetTemplate.fromJsonFile(PetpetTemplate.kt)
        at moe.dituon.petpet.service.TemplateManger.addTemplate(TemplateManger.java:115)
        at moe.dituon.petpet.service.TemplateManger.addTemplates(TemplateManger.java:76)
        at moe.dituon.petpet.service.TemplateManger.addTemplates(TemplateManger.java:70)
        at moe.dituon.petpet.service.UpdatableBaseService.addTemplates(UpdatableBaseService.java:16)
        at moe.dituon.petpet.bot.qq.onebot.MainKt.main$loadService(Main.kt:66)
        at moe.dituon.petpet.bot.qq.onebot.MainKt.main(Main.kt:74)
        at moe.dituon.petpet.bot.qq.onebot.MainKt$main$8.invoke(Main.kt)
        at moe.dituon.petpet.bot.qq.onebot.MainKt$main$8.invoke(Main.kt)
        at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:223)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
        at kotlin.coroutines.jvm.internal.RunSuspendKt.runSuspend(RunSuspend.kt:19)
        at moe.dituon.petpet.bot.qq.onebot.MainKt.main(Main.kt)
2025-08-18 12:25:28 INFO/FontManager: Font register success: Handel-Gothic.ttf, Aller-Bold.ttf, MiSans-Bold.ttf
2025-08-18 12:25:28 WARN/QQBotService: 无法找到默认模板, 将使用默认 forward_text 回复方案
2025-08-18 12:25:28 INFO/Petpet: 
=============== Petpet 环境检查 ===============
推荐使用 JetBrainsRuntime JVM 运行 Petpet:
https://github.com/JetBrains/JetBrainsRuntime

使用 Ubuntu 提供的 JVM 可能不支持以下功能:
- 彩色 Emoji 渲染
- Linux 上的增强字体渲染
- 亚像素抗锯齿
==============================================
无法找到支持以下语言的字体:- th (Thai)请在系统环境中安装字体, 或在 Petpet 字体目录中添加字体文件;
未安装字体可能导致无法渲染对应语言的文本
==============================================
2025-08-18 12:25:28 INFO/Petpet-Onebot: 

    ██████╗ ███████╗████████╗██████╗ ███████╗████████╗
    ██╔══██╗██╔════╝╚══██╔══╝██╔══██╗██╔════╝╚══██╔══╝
    ██████╔╝█████╗     ██║   ██████╔╝█████╗     ██║   
    ██╔═══╝ ██╔══╝     ██║   ██╔═══╝ ██╔══╝     ██║   
    ██║     ███████╗   ██║   ██║     ███████╗   ██║   
    ╚═╝     ╚══════╝   ╚═╝   ╚═╝     ╚══════╝   ╚═╝   v1.0.0-beta3

2025-08-18 12:25:28 INFO/Petpet-Onebot: Petpet Onebot 客户端启动成功:
2025-08-18 12:25:28 INFO/Petpet-Onebot: 已加载 144 模板; 随机表列包含 96 模板;
2025-08-18 12:25:28 INFO/Petpet-Onebot: 已注册 2 脚本; 默认模板为 null;
2025-08-18 12:25:28 INFO/Petpet-Onebot: 已加载 39 字体; 默认字体为 MiSans;
2025-08-18 12:25:29 INFO/Petpet-Onebot: Petpet Onebot 客户端启动完毕, 发送 pet 以触发默认模板...
Exception in thread "DefaultDispatcher-worker-4" java.lang.IllegalStateException: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: java.net.SocketException: Connection reset
        at moe.dituon.petpet.core.context.RequestContext.lambda$getFrameList$2(RequestContext.java:135)
        at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1134)
        at moe.dituon.petpet.core.context.RequestContext.getFrameList(RequestContext.java:128)
        at moe.dituon.petpet.core.element.avatar.AvatarXYWHFrame$RenderedFrame.<init>(AvatarXYWHFrame.java:122)
        at moe.dituon.petpet.core.element.avatar.AvatarXYWHFrame.render(AvatarXYWHFrame.java:78)
        at moe.dituon.petpet.core.element.avatar.AvatarModel$RenderedElement.lambda$new$0(AvatarModel.java:159)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
        at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:720)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
        at moe.dituon.petpet.core.element.avatar.AvatarModel$RenderedElement.<init>(AvatarModel.java:160)
        at moe.dituon.petpet.core.element.avatar.AvatarModel.render(AvatarModel.java:136)
        at moe.dituon.petpet.core.element.avatar.AvatarModel.render(AvatarModel.java:15)
        at moe.dituon.petpet.core.element.PetpetTemplateModel.draw(PetpetTemplateModel.java:66)
        at moe.dituon.petpet.bot.qq.handler.QQMessageEventHandler$MessageContext.responseTemplate(QQMessageEventHandler.java:145)
        at moe.dituon.petpet.bot.qq.handler.QQMessageEventHandler$MessageContext.handleCommand(QQMessageEventHandler.java:137)
        at moe.dituon.petpet.bot.qq.onebot.handler.OnebotGroupMessageHandler.handle(OnebotGroupMessageHandler.kt:19)
        at moe.dituon.petpet.bot.qq.onebot.MainKt$main$3$onMessage$2.invokeSuspend(Main.kt:112)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
        Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@143e178, Dispatchers.Default]
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: java.net.SocketException: Connection reset
        at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
        at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2005)
        at moe.dituon.petpet.core.context.RequestContext.lambda$getFrameList$2(RequestContext.java:132)
        ... 26 more
Caused by: java.lang.IllegalStateException: java.net.SocketException: Connection reset
        at moe.dituon.petpet.core.imgres.ImageResourceManager.openStream(ImageResourceManager.java:77)
        at moe.dituon.petpet.core.imgres.WebImageResource.lambda$getFrameListAsync$0(WebImageResource.java:41)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.SocketException: Connection reset
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:186)
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
        at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:484)
        at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:478)
        at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:160)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1511)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:456)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:427)
        at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:580)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:201)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1631)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1559)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
        at java.base/java.net.URL.openStream(URL.java:1165)
        at moe.dituon.petpet.core.imgres.ImageResourceManager.openStream(ImageResourceManager.java:75)
        ... 5 more

出错资源


Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions