From 283d96cdb6db2872c232e9b03c00736f0b5bcc91 Mon Sep 17 00:00:00 2001 From: Josiah Noel <32279667+SentryMan@users.noreply.github.com> Date: Wed, 28 May 2025 16:08:27 -0400 Subject: [PATCH] better error message for missing adapters --- .../io/avaje/validation/core/CoreAdapterBuilder.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/validator/src/main/java/io/avaje/validation/core/CoreAdapterBuilder.java b/validator/src/main/java/io/avaje/validation/core/CoreAdapterBuilder.java index 063864ae..954b54c0 100644 --- a/validator/src/main/java/io/avaje/validation/core/CoreAdapterBuilder.java +++ b/validator/src/main/java/io/avaje/validation/core/CoreAdapterBuilder.java @@ -12,15 +12,15 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.function.Supplier; -import io.avaje.validation.adapter.ConstraintAdapter; -import io.avaje.validation.groups.Default; import org.jspecify.annotations.Nullable; +import io.avaje.validation.adapter.ConstraintAdapter; import io.avaje.validation.adapter.ValidationAdapter; import io.avaje.validation.adapter.ValidationContext; import io.avaje.validation.core.adapters.BasicAdapters; import io.avaje.validation.core.adapters.FuturePastAdapterFactory; import io.avaje.validation.core.adapters.NumberAdapters; +import io.avaje.validation.groups.Default; import io.avaje.validation.spi.AdapterFactory; import io.avaje.validation.spi.AnnotationFactory; @@ -72,7 +72,12 @@ private ValidationAdapter buildForType(Type type) { return result; } } - throw new IllegalArgumentException("No ValidationAdapter for " + type + ". Perhaps needs @Valid or @Valid.Import?"); + throw new IllegalArgumentException( + "No ValidationAdapter for " + + type + + "\nPossible Causes: \n" + + "1. Missing @Valid or @Valid.Import annotation.\n" + + "2. The avaje-validator-generator dependency was not present during compilation\n"); } ValidationAdapter annotationAdapter(