Skip to content

Commit 564223b

Browse files
committed
GH-1251 Fix regression with generic type discovery
Resolves #1251
1 parent 80617ab commit 564223b

File tree

1 file changed

+4
-15
lines changed
  • spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog

1 file changed

+4
-15
lines changed

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/FunctionTypeUtils.java

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,6 @@ else if (Supplier.class.isAssignableFrom(functionalClass)) {
249249
ResolvableType functionType = ResolvableType.forClass(functionalClass).as(Supplier.class);
250250
typeToReturn = GenericTypeResolver.resolveType(functionType.getType(), functionalClass);
251251
}
252-
// else {
253-
// typeToReturn = TypeResolver.reify(functionalClass);
254-
// }
255252
return typeToReturn;
256253
}
257254

@@ -381,28 +378,20 @@ public static Type getInputType(Type functionType) {
381378
}
382379

383380
ResolvableType resolvableFunctionType = ResolvableType.forType(functionType);
384-
381+
385382
ResolvableType resolvableInputType;
386383
if (FunctionTypeUtils.isFunction(functionType)) {
387384
resolvableInputType = resolvableFunctionType.as(Function.class);
388385
}
389386
else {
390387
resolvableInputType = resolvableFunctionType.as(Consumer.class);
391388
}
392-
393-
ResolvableType genericClass0 = resolvableInputType.getGeneric(0);
394-
Type inputType;
395-
if (functionType instanceof Class functionTypeClass) {
396-
inputType = genericClass0.getType();
397-
inputType = (inputType instanceof TypeVariable) ? Object.class : GenericTypeResolver.resolveType(inputType, functionTypeClass);
398-
}
399-
else if (functionType instanceof ParameterizedType) {
400-
inputType = GenericTypeResolver.resolveType(genericClass0.getType(), getRawType(functionType));
389+
if (resolvableInputType.getType() instanceof ParameterizedType) {
390+
return resolvableInputType.getGeneric(0).getType();
401391
}
402392
else {
403-
inputType = resolvableInputType.getType();
393+
return Object.class;
404394
}
405-
return inputType instanceof TypeVariable ? Object.class : inputType;
406395
}
407396

408397
@SuppressWarnings("rawtypes")

0 commit comments

Comments
 (0)