GregTechCEu Modern

GregTechCEu Modern

6M Downloads

Ldlib crashes during tests with fluids

jurrejelle opened this issue ยท 1 comments

commented

Checked for existing issues

  • I have checked for existing issues, and have found none.

Tested latest version

  • I have checked that this occurs on the latest version.

GregTech CEu Version

1.20.1-latest

Minecraft Version

1.20.1 Forge

Recipe Viewer Installed

None

Environment

Singleplayer

Cross-Mod Interaction

Unsure

Other Installed Mods

n/a

Expected Behavior

Test can run without crashing

Actual Behavior

crash

Steps to Reproduce

Clone jj/ldlib-crash or paste:

@PrefixGameTestTemplate(false)
@GameTestHolder(GTCEu.MOD_ID)
public class TestLdlibCrash {

    @GameTest(template = "singleblock_charged_cr", batch = "RangedFluidIngredients")
    public static void LDLibSyncTest(GameTestHelper helper) {
        SimpleTieredMachine machine = (SimpleTieredMachine) getMetaMachine(
                helper.getBlockEntity(new BlockPos(0, 1, 0)));

        NotifiableFluidTank fluidIn = (NotifiableFluidTank) machine
                .getCapabilitiesFlat(IO.IN, FluidRecipeCapability.CAP).get(0);

        fluidIn.fill(new FluidStack(Fluids.WATER, 10), IFluidHandler.FluidAction.EXECUTE);

        helper.runAfterDelay(40, () -> {
            helper.succeed();
        });
    }
}

then run gametests

Additional Information

[21:47:21] [Server thread/INFO] [minecraft/GameTestBatchRunner]: Running test batch 'RangedFluidIngredients:1' (1 tests)...
[21:47:21] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception
java.lang.IllegalArgumentException: The array of class com.gregtechceu.gtceu.api.transfer.fluid.CustomFluidTank should not be changed
at com.lowdragmc.lowdraglib.syncdata.accessor.ArrayAccessor.writeManagedField(ArrayAccessor.java:124) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:classloading}
at com.lowdragmc.lowdraglib.syncdata.accessor.ArrayAccessor.writeToReadonlyField(ArrayAccessor.java:157) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:classloading}
at com.lowdragmc.lowdraglib.syncdata.accessor.ArrayAccessor.writeField(ArrayAccessor.java:63) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:classloading}
at com.lowdragmc.lowdraglib.syncdata.field.ManagedKey.writePersistedField(ManagedKey.java:88) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:classloading}
at com.lowdragmc.lowdraglib.syncdata.accessor.IManagedAccessor.writePersistedFields(IManagedAccessor.java:128) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:classloading}
at com.lowdragmc.lowdraglib.syncdata.accessor.IManagedAccessor.writeToReadonlyField(IManagedAccessor.java:115) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:classloading}
at com.lowdragmc.lowdraglib.syncdata.accessor.ReadonlyAccessor.writeField(ReadonlyAccessor.java:85) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:classloading}
at com.lowdragmc.lowdraglib.syncdata.field.ManagedKey.writePersistedField(ManagedKey.java:88) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:classloading}
at com.lowdragmc.lowdraglib.syncdata.accessor.IManagedAccessor.writePersistedFields(IManagedAccessor.java:128) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:classloading}
at com.lowdragmc.lowdraglib.syncdata.blockentity.IAutoPersistBlockEntity.loadManagedPersistentData(IAutoPersistBlockEntity.java:31) ~[ldlib-forge-1.20.1-1.0.40.b.jar%23153!/:?] {re:mixin,re:classloading}
at net.minecraft.world.level.block.entity.BlockEntity.handler$zbf000$injectLoad(BlockEntity.java:544) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:mixin,re:classloading,pl:mixin:APP:ldlib-common.mixins.json:BlockEntityMixin,pl:mixin:A}
at net.minecraft.world.level.block.entity.BlockEntity.load(BlockEntity.java:56) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:mixin,re:classloading,pl:mixin:APP:ldlib-common.mixins.json:BlockEntityMixin,pl:mixin:A}
at com.gregtechceu.gtceu.api.blockentity.MetaMachineBlockEntity.load(MetaMachineBlockEntity.java:329) ~[%23150!/:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.placeInWorld(StructureTemplate.java:251) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:mixin,xf:fml:forge:forge_method_redirector,re:classloading,xf:fml:forge:forge_method_redirector,pl:mixin:APP:ae2.mixins.json:StructureTemplateMixin,pl:mixin:A}
at net.minecraft.world.level.block.entity.StructureBlockEntity.loadStructure(StructureBlockEntity.java:411) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at net.minecraft.world.level.block.entity.StructureBlockEntity.loadStructure(StructureBlockEntity.java:376) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at net.minecraft.gametest.framework.StructureUtils.createStructureBlock(StructureUtils.java:265) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:mixin,re:classloading,pl:mixin:APP:ae2.mixins.json:tests.StructureUtilsMixin,pl:mixin:A}
at net.minecraft.gametest.framework.StructureUtils.spawnStructure(StructureUtils.java:163) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:mixin,re:classloading,pl:mixin:APP:ae2.mixins.json:tests.StructureUtilsMixin,pl:mixin:A}
at net.minecraft.gametest.framework.GameTestInfo.spawnStructure(GameTestInfo.java:217) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at net.minecraft.gametest.framework.GameTestRunner.runTest(GameTestRunner.java:31) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at net.minecraft.gametest.framework.GameTestBatchRunner.lambda$runBatch$3(GameTestBatchRunner.java:85) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:422) ~[guava-31.1-jre.jar%2379!/:?] {re:mixin}
at net.minecraft.gametest.framework.GameTestBatchRunner.runBatch(GameTestBatchRunner.java:83) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at net.minecraft.gametest.framework.GameTestBatchRunner$1.testCompleted(GameTestBatchRunner.java:67) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at net.minecraft.gametest.framework.GameTestBatchRunner$1.testPassed(GameTestBatchRunner.java:76) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at net.minecraft.gametest.framework.GameTestInfo.lambda$tick$1(GameTestInfo.java:65) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?] {re:mixin}
at net.minecraft.gametest.framework.GameTestInfo.tick(GameTestInfo.java:64) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:807) ~[?:?] {}
at net.minecraft.gametest.framework.GameTestTicker.tick(GameTestTicker.java:19) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading}
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:923) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:826) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at net.minecraft.gametest.framework.GameTestServer.tickServer(GameTestServer.java:122) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:667) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:251) ~[forge-1.20.1-47.3.0-merged.jar%23145!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
at java.lang.Thread.run(Thread.java:840) ~[?:?] {re:mixin}

commented

maybe will be fixed with #3491