MoreMcmeta/core

Stack overflow when other mods scan all resources (Dynamic Assets Generator)

soir20 opened this issue · 2 comments

Describe the bug
1.19.3

Using MoreMcmeta and Dynamic Assets Generator together causes the game to take an absurd amount of time or load (or possibly it never loads). Relevant stacktrace from the logs (truncated for char limit):
java.lang.StackOverflowError: null
	at java.lang.StringBuilder.append(StringBuilder.java:179) ~[?:?]
	at cpw.mods.niofs.union.UnionPath.<init>(UnionPath.java:39) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.niofs.union.UnionFileSystem.getPath(UnionFileSystem.java:170) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.jarhandling.impl.Jar.findFile(Jar.java:65) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.jarhandling.impl.Jar$JarModuleDataProvider.open(Jar.java:291) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.JarModuleFinder$JarModuleReader.open(JarModuleFinder.java:76) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.lambda$getClassBytes$10(ModuleClassLoader.java:105) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.util.LambdaExceptionUtils.lambda$rethrowFunction$2(LambdaExceptionUtils.java:42) ~[securejarhandler-2.1.4.jar:?]
	at java.util.Optional.flatMap(Optional.java:289) ~[?:?]
	at cpw.mods.cl.ModuleClassLoader.getClassBytes(ModuleClassLoader.java:105) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.4.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at org.apache.logging.log4j.message.ParameterizedNoReferenceMessageFactory.newMessage(ParameterizedNoReferenceMessageFactory.java:105) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.message.AbstractMessageFactory.newMessage(AbstractMessageFactory.java:99) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2057) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1931) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.warn(AbstractLogger.java:2805) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.handleLogMessageException(AbstractLogger.java:2225) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2208) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2159) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2142) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2017) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1983) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:750) ~[log4j-api-2.19.0.jar%23129!/:2.19.0]
	at dev.lukebemish.dynamicassetgenerator.api.ResourceCache.lambda$getResources$1(ResourceCache.java:58) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at dev.lukebemish.dynamicassetgenerator.api.ResourceCache.getResources(ResourceCache.java:52) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.GeneratedPackResources.getStreams(GeneratedPackResources.java:39) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.GeneratedPackResources.m_5698_(GeneratedPackResources.java:76) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at io.github.soir20.moremcmeta.client.adapter.PackResourcesAdapter.getNamespaces(PackResourcesAdapter.java:120) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.lambda$listResources$3(OrderedResourceRepository.java:111) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) ~[?:?]
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.listResources(OrderedResourceRepository.java:114) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.client.resource.TextureLoader.load(TextureLoader.java:78) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.client.resource.TextureCache.load(TextureCache.java:81) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.MoreMcmeta.lambda$start$2(MoreMcmeta.java:121) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at net.minecraft.server.packs.repository.Pack.m_10445_(Pack.java:110) ~[client-1.19.3-20221207.122022-srg.jar%23152!/:?]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
	at dev.lukebemish.dynamicassetgenerator.api.client.ClientPrePackRepository.getResources(ClientPrePackRepository.java:45) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.client.BuiltinAssetResourceCache.getSourceJsons(BuiltinAssetResourceCache.java:33) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.client.BuiltinAssetResourceCache.lambda$new$0(BuiltinAssetResourceCache.java:26) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.api.ResourceCache.lambda$getResources$1(ResourceCache.java:54) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at dev.lukebemish.dynamicassetgenerator.api.ResourceCache.getResources(ResourceCache.java:52) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.GeneratedPackResources.getStreams(GeneratedPackResources.java:39) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.GeneratedPackResources.m_5698_(GeneratedPackResources.java:76) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at io.github.soir20.moremcmeta.client.adapter.PackResourcesAdapter.getNamespaces(PackResourcesAdapter.java:120) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.lambda$listResources$3(OrderedResourceRepository.java:111) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) ~[?:?]
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.listResources(OrderedResourceRepository.java:114) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.client.resource.TextureLoader.load(TextureLoader.java:78) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.client.resource.TextureCache.load(TextureCache.java:81) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.MoreMcmeta.lambda$start$2(MoreMcmeta.java:121) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at net.minecraft.server.packs.repository.Pack.m_10445_(Pack.java:110) ~[client-1.19.3-20221207.122022-srg.jar%23152!/:?]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
	at dev.lukebemish.dynamicassetgenerator.api.client.ClientPrePackRepository.getResources(ClientPrePackRepository.java:45) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.client.BuiltinAssetResourceCache.getSourceJsons(BuiltinAssetResourceCache.java:33) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.client.BuiltinAssetResourceCache.lambda$new$0(BuiltinAssetResourceCache.java:26) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.api.ResourceCache.lambda$getResources$1(ResourceCache.java:54) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at dev.lukebemish.dynamicassetgenerator.api.ResourceCache.getResources(ResourceCache.java:52) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.GeneratedPackResources.getStreams(GeneratedPackResources.java:39) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at dev.lukebemish.dynamicassetgenerator.impl.GeneratedPackResources.m_5698_(GeneratedPackResources.java:76) ~[dynamicassetgenerator-forge-1.19.3-3.0.1.jar%23150!/:3.0.1]
	at io.github.soir20.moremcmeta.client.adapter.PackResourcesAdapter.getNamespaces(PackResourcesAdapter.java:120) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.lambda$listResources$3(OrderedResourceRepository.java:111) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) ~[?:?]
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?]
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.listResources(OrderedResourceRepository.java:114) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.client.resource.TextureLoader.load(TextureLoader.java:78) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.client.resource.TextureCache.load(TextureCache.java:81) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]
	at io.github.soir20.moremcmeta.MoreMcmeta.lambda$start$2(MoreMcmeta.java:121) ~[moremcmeta-1.19.3-3.0.5-forge.jar%23151!/:?]

1.18.2

The game crashes with a `java.util.regex.PatternSyntaxException: Stack overflow during pattern compilation near index 12 (?:\Q/\E)+(?=(?:\Q/\E))` error (truncated for char limit):
java.util.regex.PatternSyntaxException: Stack overflow during pattern compilation near index 12
(?:\Q/\E)+(?=(?:\Q/\E))
            ^
	at java.util.regex.Pattern.error(Pattern.java:2028) ~[?:?] {}
	at java.util.regex.Pattern.<init>(Pattern.java:1432) ~[?:?] {}
	at java.util.regex.Pattern.compile(Pattern.java:1069) ~[?:?] {}
	at java.lang.String.replaceAll(String.java:2939) ~[?:?] {re:mixin}
	at cpw.mods.niofs.union.UnionPath.getPathParts(UnionPath.java:56) ~[securejarhandler-1.0.3.jar:?] {}
	at cpw.mods.niofs.union.UnionPath.<init>(UnionPath.java:29) ~[securejarhandler-1.0.3.jar:?] {}
	at cpw.mods.niofs.union.UnionFileSystem.getPath(UnionFileSystem.java:115) ~[securejarhandler-1.0.3.jar:?] {}
	at cpw.mods.niofs.union.UnionFileSystem.lambda$newDirStream$10(UnionFileSystem.java:244) ~[securejarhandler-1.0.3.jar:?] {}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?] {}
	at java.util.Iterator.forEachRemaining(Iterator.java:133) ~[?:?] {}
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845) ~[?:?] {}
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?] {}
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?] {}
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] {}
	at java.util.stream.ReferencePipeline.forEachOrdered(ReferencePipeline.java:601) ~[?:?] {}
	at cpw.mods.niofs.union.UnionFileSystem.newDirStream(UnionFileSystem.java:245) ~[securejarhandler-1.0.3.jar:?] {}
	at cpw.mods.niofs.union.UnionFileSystemProvider.newDirectoryStream(UnionFileSystemProvider.java:157) ~[securejarhandler-1.0.3.jar:?] {}
	at java.nio.file.Files.newDirectoryStream(Files.java:482) ~[?:?] {}
	at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:301) ~[?:?] {}
	at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:323) ~[?:?] {}
	at java.nio.file.FileTreeIterator.<init>(FileTreeIterator.java:71) ~[?:?] {}
	at java.nio.file.Files.walk(Files.java:3918) ~[?:?] {}
	at net.minecraftforge.resource.PathResourcePack.m_5698_(PathResourcePack.java:131) ~[forge-1.18.2-40.0.12-universal.jar%2358!/:?] {re:classloading}
	at net.minecraftforge.resource.PathResourcePack.m_5698_(PathResourcePack.java:142) ~[forge-1.18.2-40.0.12-universal.jar%2358!/:?] {re:classloading}
	at net.minecraftforge.resource.DelegatingResourcePack.buildNamespaceMap(DelegatingResourcePack.java:50) ~[forge-1.18.2-40.0.12-universal.jar%2358!/:?] {re:classloading}
	at net.minecraftforge.resource.DelegatingResourcePack.<init>(DelegatingResourcePack.java:42) ~[forge-1.18.2-40.0.12-universal.jar%2358!/:?] {re:classloading}
	at net.minecraftforge.client.loading.ClientModLoader.lambda$clientPackFinder$12(ClientModLoader.java:211) ~[forge-1.18.2-40.0.12-universal.jar%2358!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.server.packs.repository.Pack.m_10445_(Pack.java:124) ~[client-1.18.2-20220228.144236-srg.jar%2354!/:?] {re:classloading}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?] {}
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?] {}
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?] {}
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] {}
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?] {}
	at io.github.lukebemish.dynamic_asset_generator.client.api.ClientPrePackRepository.getResources(ClientPrePackRepository.java:35) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:mixin,re:classloading}
	at io.github.lukebemish.dynamic_asset_generator.client.api.ClientPrePackRepository.getSourceJsons(ClientPrePackRepository.java:58) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:mixin,re:classloading}
	at io.github.lukebemish.dynamic_asset_generator.client.DynAssetGenClientPlanner.getResources(DynAssetGenClientPlanner.java:55) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:classloading}
	at io.github.lukebemish.dynamic_asset_generator.forge.DynAssetGenClientResourcePack.getStreams(DynAssetGenClientResourcePack.java:26) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:classloading}
	at io.github.lukebemish.dynamic_asset_generator.forge.DynAssetGenClientResourcePack.m_5698_(DynAssetGenClientResourcePack.java:86) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:classloading}
	at io.github.soir20.moremcmeta.client.adapter.PackResourcesAdapter.getNamespaces(PackResourcesAdapter.java:102) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.lambda$listResources$3(OrderedResourceRepository.java:111) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) ~[?:?] {}
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?] {}
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?] {}
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] {}
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?] {}
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.listResources(OrderedResourceRepository.java:114) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at io.github.soir20.moremcmeta.client.resource.TextureLoader.load(TextureLoader.java:78) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at io.github.soir20.moremcmeta.client.resource.TextureCache.load(TextureCache.java:81) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at io.github.soir20.moremcmeta.MoreMcmeta.lambda$start$2(MoreMcmeta.java:119) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at net.minecraft.server.packs.repository.Pack.m_10445_(Pack.java:124) ~[client-1.18.2-20220228.144236-srg.jar%2354!/:?] {re:classloading}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?] {}
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?] {}
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?] {}
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] {}
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?] {}
	at io.github.lukebemish.dynamic_asset_generator.client.api.ClientPrePackRepository.getResources(ClientPrePackRepository.java:35) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:mixin,re:classloading}
	at io.github.lukebemish.dynamic_asset_generator.client.api.ClientPrePackRepository.getSourceJsons(ClientPrePackRepository.java:58) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:mixin,re:classloading}
	at io.github.lukebemish.dynamic_asset_generator.client.DynAssetGenClientPlanner.getResources(DynAssetGenClientPlanner.java:55) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:classloading}
	at io.github.lukebemish.dynamic_asset_generator.forge.DynAssetGenClientResourcePack.getStreams(DynAssetGenClientResourcePack.java:26) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:classloading}
	at io.github.lukebemish.dynamic_asset_generator.forge.DynAssetGenClientResourcePack.m_5698_(DynAssetGenClientResourcePack.java:86) ~[dynamic_asset_generator-forge-1.18.2-0.6.3.jar%2352!/:0.6.3] {re:classloading}
	at io.github.soir20.moremcmeta.client.adapter.PackResourcesAdapter.getNamespaces(PackResourcesAdapter.java:102) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.lambda$listResources$3(OrderedResourceRepository.java:111) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) ~[?:?] {}
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?] {}
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?] {}
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] {}
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?] {}
	at io.github.soir20.moremcmeta.client.resource.OrderedResourceRepository.listResources(OrderedResourceRepository.java:114) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at io.github.soir20.moremcmeta.client.resource.TextureLoader.load(TextureLoader.java:78) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at io.github.soir20.moremcmeta.client.resource.TextureCache.load(TextureCache.java:81) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}
	at io.github.soir20.moremcmeta.MoreMcmeta.lambda$start$2(MoreMcmeta.java:119) ~[moremcmeta-1.18.2-3.0.5-forge.jar%2353!/:?] {re:classloading}

To reproduce

  1. Add MoreMcmeta and Dynamic Assets Generator to the mods folder.
  2. Launch the game.

Expected behavior
Game loads within a normal amount of time and does not crash.

Screenshots or videos
N/A

Which Minecraft versions does this bug affect?
1.18, 1.19
(Technically, 1.16 and 1.17 are also affected, but DAG is not available for these versions.)

Mod loader
Which mod loaders does this bug affect?

  • Forge
  • Fabric

Mods list

  • MoreMcmeta 3.0.5
  • Dynamic Asset Generator 3.0.1

Resource pack
Demo pack.

Additional context
Reported via CurseForge comments.

Cause is stack overflow error because both mods scan all resources when resource packs are opened. MoreMcmeta's pack opens --> DAG's pack opens --> MoreMcmeta's pack opens again --> DAG's pack opens again --> ... --> stack overflow.

Fixed by 50a6e6a (1.16), 7419552 (1.17), c9a50f3 (1.18), 75d165b (1.19).

Fix was released in version 3.0.6.