From d2d07fbec51469774ace22052ff6ea68cc58dd15 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 27 Apr 2020 15:20:19 +0200 Subject: [PATCH] DATACMNS-1710 - Polishing. Reformat code. Skip parameter inspection if constructor has no parameters. Original pull request: #440. --- .../model/PreferredConstructorDiscoverer.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java b/src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java index 57169dc2d..8d1ab7065 100644 --- a/src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java +++ b/src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java @@ -115,22 +115,23 @@ public interface PreferredConstructorDiscoverer 1 || candidates.isEmpty() ? null : buildPreferredConstructor(candidates.iterator().next(), type, entity); + return candidates.size() > 1 || candidates.isEmpty() ? null + : buildPreferredConstructor(candidates.iterator().next(), type, entity); } }, @@ -152,7 +153,8 @@ public interface PreferredConstructorDiscoverer !it.isSynthetic()) // Synthetic constructors should not be considered - .filter(it -> it.isAnnotationPresent(PersistenceConstructor.class)) // Explicitly defined constructor trumps all + .filter(it -> it.isAnnotationPresent(PersistenceConstructor.class)) // Explicitly defined constructor trumps + // all .map(it -> buildPreferredConstructor(it, type, entity)) // .findFirst() // .orElseGet(() -> { @@ -198,12 +200,11 @@ public interface PreferredConstructorDiscoverer> PreferredConstructor buildPreferredConstructor( Constructor constructor, TypeInformation typeInformation, @Nullable PersistentEntity entity) { - List> parameterTypes = typeInformation.getParameterTypes(constructor); - - if (parameterTypes.isEmpty()) { + if (constructor.getParameterCount() == 0) { return new PreferredConstructor<>((Constructor) constructor); } + List> parameterTypes = typeInformation.getParameterTypes(constructor); String[] parameterNames = PARAMETER_NAME_DISCOVERER.getParameterNames(constructor); Parameter[] parameters = new Parameter[parameterTypes.size()];