From ca8b129986fc9b684ef1fb71d56955315233bd53 Mon Sep 17 00:00:00 2001 From: andreoss Date: Sun, 23 Aug 2020 12:25:02 -0400 Subject: [PATCH] (#179) Check if the arguments match when selecting ctor --- src/main/java/com/jcabi/http/request/BaseRequest.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/jcabi/http/request/BaseRequest.java b/src/main/java/com/jcabi/http/request/BaseRequest.java index eb6f87d5f..d88a418b8 100644 --- a/src/main/java/com/jcabi/http/request/BaseRequest.java +++ b/src/main/java/com/jcabi/http/request/BaseRequest.java @@ -284,8 +284,15 @@ public Request through(final Class type, Constructor ctor = null; for (final Constructor opt : type.getDeclaredConstructors()) { if (opt.getParameterTypes().length == args.length + 1) { - ctor = opt; - break; + final Class[] types = opt.getParameterTypes(); + boolean allmatch = true; + for (int i = 1; i < types.length && allmatch; i++) { + allmatch &= types[i].isAssignableFrom(args[i - 1].getClass()); + } + if (allmatch) { + ctor = opt; + break; + } } } if (ctor == null) {