diff --git a/jooby/src/main/java/io/jooby/internal/converter/ReflectiveBeanConverter.java b/jooby/src/main/java/io/jooby/internal/converter/ReflectiveBeanConverter.java index a2452859f8..c0659023d5 100644 --- a/jooby/src/main/java/io/jooby/internal/converter/ReflectiveBeanConverter.java +++ b/jooby/src/main/java/io/jooby/internal/converter/ReflectiveBeanConverter.java @@ -33,7 +33,6 @@ import io.jooby.ValueNode; import io.jooby.annotation.EmptyBean; import io.jooby.exception.BadRequestException; -import io.jooby.exception.MissingValueException; import io.jooby.exception.ProvisioningException; import io.jooby.internal.reflect.$Types; import jakarta.inject.Inject; @@ -236,8 +235,6 @@ private static Object value(Parameter parameter, ValueNode node, ValueNode value } } } - } catch (MissingValueException x) { - throw new ProvisioningException(parameter, x); } catch (BadRequestException x) { throw new ProvisioningException(parameter, x); } @@ -245,10 +242,14 @@ private static Object value(Parameter parameter, ValueNode node, ValueNode value private static boolean isNullable(Parameter parameter) { var type = parameter.getType(); - if (type.isPrimitive()) { + if (hasAnnotation(parameter, ".Nullable")) { + return true; + } + boolean nonnull = hasAnnotation(parameter, ".NonNull"); + if (nonnull) { return false; } - return !hasAnnotation(parameter, "NotNull", "NonNull"); + return !type.isPrimitive(); } private static boolean hasAnnotation(AnnotatedElement element, String... names) {