The bug
The method net.minecraft.client.resources.ClientPackSource.downloadAndSelectResourcePack(String, String) (Mojang name) does not log the exception stack trace when applying the resource pack fails (message "Pack application failed").
Here this is especially problematic because it handles any kind of Throwable and not a specific type. For example MC-172198 describes a NullPointerException and it is very difficult to find out why it occurred without stack trace.
Comments 2
I was unable to confirm this as of 1.21.11:
The method
downloadAndSelectResourcePackno longer exists. The resource pack system now uses aCompletableFuturebased asynchronous architecture.
The string "Pack application failed" is gone. The closest equivalent code is:
public CompletableFuture<Void> b(final UUID $$0) {
final CompletableFuture<Void> $$1 = new CompletableFuture<Void>();
@Override
public void a(UUID $$02, ioo.a $$12) {
if ($$0.equals($$02)) {
iom.this.m = $$2;
if ($$12 == ioo.a.b) {
$$1.complete(null);
} else {
$$1.completeExceptionally(new IllegalStateException(
"Failed to apply pack " + String.valueOf($$02) +
", reason: " + String.valueOf((Object)$$12)));
}
}
$$2.a($$02, $$12);
}
}This may’ve been resolved due to the complete architectural rewrite of the resource pack download/apply system.
Is this still an issue? Does this actually have an impact on development of a server/resource pack?