Avaritia:Reforged

Avaritia:Reforged

45.5k Downloads

[Bug/漏洞] 在使用无尽锻造台时,在ExtremeSmithingRecipe.matches中发生StackOverflowError

FortyTwoCn opened this issue · 0 comments

commented

Checks / 检查

  • I confirm that I have searched for existing issues / pull requests before reporting to avoid duplicate reporting./我确认在报告之前我已经搜索了现有的问题或者拉取请求,以避免重复报告。
  • I confirm that I followed the Docs and read the Changelog, but this problem still exists./我确认我按照文档配置并阅读了Changelog,但这个问题仍然存在。
  • I confirm that I noted that if I don't follow the instructions, the issue may be closed directly./我确认我已经检查,如果我不按照说明进行操作,该问题可能会被直接关闭。

Java Version / Java版本

21

Minecraft Version / Minecraft版本

1.21.1

Avaritia-Reforge Version / Avaritia-Reforge版本

1.3.9.0-beta4-fix2

Description / 描述

问题描述
在极限合成台中放入或取出物品时,服务器会立即崩溃并抛出 java.lang.StackOverflowError。错误日志表明,崩溃发生在 ExtremeSmithingRecipe.matches 方法中,原因是该方法内部触发了无限递归。

To Reproduce / 重现

null

Log / 日志

java.lang.StackOverflowError: 服务器tick循环中发生异常
	at TRANSFORMER/[email protected]/committee.nova.mods.avaritia.common.crafting.recipe.ExtremeSmithingRecipe.matches(ExtremeSmithingRecipe.java:41) ~[%5BR%5D%5B1.21.1%5D%5B无尽贪婪重生%5DRe-Avaritia-neoforge-1.21.1-1.3.9.0-beta4-fix2.jar%23512!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/committee.nova.mods.avaritia.common.crafting.recipe.ExtremeSmithingRecipe.matches(ExtremeSmithingRecipe.java:27) ~[%5BR%5D%5B1.21.1%5D%5B无尽贪婪重生%5DRe-Avaritia-neoforge-1.21.1-1.3.9.0-beta4-fix2.jar%23512!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.world.item.crafting.RecipeManager.lambda$getRecipesFor$3(RecipeManager.java:116) ~[server-1.21.1-20240808.144430-srg.jar%23394!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) ~[?:?] {}
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024) ~[?:?] {}
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?] {}
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] {}
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?] {}
	at TRANSFORMER/[email protected]/net.minecraft.world.item.crafting.RecipeManager.getRecipesFor(RecipeManager.java:118) ~[server-1.21.1-20240808.144430-srg.jar%23394!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
	at TRANSFORMER/[email protected]/committee.nova.mods.avaritia.common.menu.ExtremeSmithingMenu.createResult(ExtremeSmithingMenu.java:79) ~[%5BR%5D%5B1.21.1%5D%5B无尽贪婪重生%5DRe-Avaritia-neoforge-1.21.1-1.3.9.0-beta4-fix2.jar%23512!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.world.inventory.ItemCombinerMenu.slotsChanged(ItemCombinerMenu.java:110) ~[server-1.21.1-20240808.144430-srg.jar%23394!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B}
	at TRANSFORMER/[email protected]/net.minecraft.world.inventory.ItemCombinerMenu$3.setChanged(ItemCombinerMenu.java:101) ~[server-1.21.1-20240808.144430-srg.jar%23394!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.world.SimpleContainer.setItem(SimpleContainer.java:199) ~[server-1.21.1-20240808.144430-srg.jar%23394!/:?] {re:classloading,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B}
	at TRANSFORMER/[email protected]/net.minecraft.world.inventory.Slot.set(Slot.java:66) ~[server-1.21.1-20240808.144430-srg.jar%23394!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.neoforge.mixins.json:SlotAccessor from mod balm,pl:mixin:A}
	at 

Config / 配置

null