If you try to create multiple empty tags in a datapack, the server crashes on startup.
Steps to reproduce:
Add the attached datapack to your world
(Make sure the datapack is enabled)
Observe that the server crashes
(1.16 Pre-Release 3) [^latest.log]
[21:16:39] [main/WARN]: Failed to load datapacks, can't proceed with server load. You can either fix your datapacks or reset to vanilla with --safeMode
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Multiple entries with same value: oops:ohno=adc@594a6048 and oops:uhoh=adc@594a6048
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908) ~[?:1.8.0_252]
at net.minecraft.server.Main.main(SourceFile:138) [server.jar:?]
Caused by: java.lang.IllegalArgumentException: Multiple entries with same value: oops:ohno=adc@594a6048 and oops:uhoh=adc@594a6048
at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:186) ~[server.jar:?]
at com.google.common.collect.RegularImmutableBiMap.checkNoConflictInValueBucket(RegularImmutableBiMap.java:132) ~[server.jar:?]
at com.google.common.collect.RegularImmutableBiMap.fromEntryArray(RegularImmutableBiMap.java:88) ~[server.jar:?]
at com.google.common.collect.RegularImmutableBiMap.fromEntries(RegularImmutableBiMap.java:57) ~[server.jar:?]
at com.google.common.collect.ImmutableBiMap.copyOf(ImmutableBiMap.java:321) ~[server.jar:?]
at com.google.common.collect.ImmutableBiMap.copyOf(ImmutableBiMap.java:294) ~[server.jar:?]
at adg.b(SourceFile:167) ~[server.jar:?]
at adg.a(SourceFile:163) ~[server.jar:?]
at adh.a(SourceFile:69) ~[server.jar:?]
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:670) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:646) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456) ~[?:1.8.0_252]
at abg.a(SourceFile:71) ~[server.jar:?]
at abg.a(SourceFile:70) ~[server.jar:?]
at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:543) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:667) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:646) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) ~[?:1.8.0_252]
at abg$1.a(SourceFile:53) ~[server.jar:?]
at abg$1.a(SourceFile:50) ~[server.jar:?]
at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:966) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:940) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1609) ~[?:1.8.0_252]
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1596) ~[?:1.8.0_252]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_252]
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_252]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) ~[?:1.8.0_252]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_252]
Here is a fix as a Fabric mod: https://github.com/haykam821/Empty-Tag-Fix
Seems to be caused by a reusable empty list used for empty tags, which causes IllegalArgumentException to be thrown as that same list can't be used for two entries