Forge插件错误分析:java.lang.IndexOutOfBoundsException - 任务61执行失败
错误分析:[02:05:57 WARN]: [Forge] Plugin Forge v1.0.0 generated an exception while executing task 61\njava.lang.RuntimeException: An internal error occured.\n\tat com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:20) ~[?:?]\n\tat com.comphenix.protocol.utility.StreamSerializer.deserializeItemStack(StreamSerializer.java:348) ~[?:?]\n\tat com.mchim.Forge.Utils.ItemString.getItem(ItemString.java:29) ~[?:?]\n\tat com.mchim.Forge.Data.DrawData.getFormula(DrawData.java:48) ~[?:?]\n\tat com.mchim.Forge.SQL.SQLQuery.saveDrawData(SQLQuery.java:229) ~[?:?]\n\tat com.mchim.Forge.LMMain$1.run(LMMain.java:47) ~[?:?]\n\tat org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:71) ~[Spigot-1.12.2.jar:git-Spigot-7754231-94b0980]\n\tat org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52) [Spigot-1.12.2.jar:git-Spigot-7754231-94b0980]\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_211]\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_211]\n\tat java.lang.Thread.run(Unknown Source) [?:1.8.0_211]\nCaused by: java.lang.IndexOutOfBoundsException\n\tat io.netty.buffer.EmptyByteBuf.readShort(EmptyByteBuf.java:540) ~[Spigot-1.12.2.jar:git-Spigot-7754231-94b0980]\n\tat net.minecraft.server.v1_12_R1.PacketDataSerializer.readShort(PacketDataSerializer.java:683) ~[Spigot-1.12.2.jar:git-Spigot-7754231-94b0980]\n\tat net.minecraft.server.v1_12_R1.PacketDataSerializer.k(PacketDataSerializer.java:262) ~[Spigot-1.12.2.jar:git-Spigot-7754231-94b0980]\n\tat sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source) ~[?:?]\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]\n\tat java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_211]\n\tat com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:16) ~[?:?]\n\t... 10 more内容:在执行任务61时,Forge v1.0.0插件发生了内部错误,该错误类型为java.lang.IndexOutOfBoundsException。\n\n该错误的根源在于尝试从空的ByteBuf中读取short值。\n\n具体错误堆栈信息如下:\n1. 错误发生在DefaultMethodAccessor类的invoke方法中。\n2. 错误发生在StreamSerializer类的deserializeItemStack方法中。\n3. 错误发生在ItemString类的getItem方法中。\n4. 错误发生在DrawData类的getFormula方法中。\n5. 错误发生在SQLQuery类的saveDrawData方法中。\n6. 错误发生在LMMain类的run方法中。\n7. 错误发生在CraftTask类的run方法中。\n8. 错误发生在CraftAsyncTask类的run方法中。\n9. 错误发生在ThreadPoolExecutor类的runWorker方法中。\n10. 错误发生在Thread类的run方法中。\n\n建议检查代码中读取ByteBuf的逻辑,确保在读取之前检查ByteBuf是否为空,并进行相应的处理。
原文地址: https://www.cveoy.top/t/topic/pP5K 著作权归作者所有。请勿转载和采集!