Properly handle Flux<?> and Flux<Object> in WebFlux
Issue: SPR-15464
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -42,8 +42,8 @@ public class ByteArrayEncoder extends AbstractEncoder<byte[]> {
|
||||
|
||||
@Override
|
||||
public boolean canEncode(ResolvableType elementType, MimeType mimeType) {
|
||||
Class<?> clazz = elementType.getRawClass();
|
||||
return (super.canEncode(elementType, mimeType) && byte[].class.isAssignableFrom(clazz));
|
||||
Class<?> clazz = elementType.resolve(Object.class);
|
||||
return super.canEncode(elementType, mimeType) && byte[].class.isAssignableFrom(clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -43,8 +43,8 @@ public class ByteBufferEncoder extends AbstractEncoder<ByteBuffer> {
|
||||
|
||||
@Override
|
||||
public boolean canEncode(ResolvableType elementType, MimeType mimeType) {
|
||||
Class<?> clazz = elementType.getRawClass();
|
||||
return (super.canEncode(elementType, mimeType) && ByteBuffer.class.isAssignableFrom(clazz));
|
||||
Class<?> clazz = elementType.resolve(Object.class);
|
||||
return super.canEncode(elementType, mimeType) && ByteBuffer.class.isAssignableFrom(clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -52,8 +52,8 @@ public class CharSequenceEncoder extends AbstractEncoder<CharSequence> {
|
||||
|
||||
@Override
|
||||
public boolean canEncode(ResolvableType elementType, MimeType mimeType) {
|
||||
Class<?> clazz = elementType.getRawClass();
|
||||
return (super.canEncode(elementType, mimeType) && CharSequence.class.isAssignableFrom(clazz));
|
||||
Class<?> clazz = elementType.resolve(Object.class);
|
||||
return super.canEncode(elementType, mimeType) && CharSequence.class.isAssignableFrom(clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -42,8 +42,8 @@ public class DataBufferEncoder extends AbstractEncoder<DataBuffer> {
|
||||
|
||||
@Override
|
||||
public boolean canEncode(ResolvableType elementType, MimeType mimeType) {
|
||||
Class<?> clazz = elementType.getRawClass();
|
||||
return (super.canEncode(elementType, mimeType) && DataBuffer.class.isAssignableFrom(clazz));
|
||||
Class<?> clazz = elementType.resolve(Object.class);
|
||||
return super.canEncode(elementType, mimeType) && DataBuffer.class.isAssignableFrom(clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -61,7 +61,7 @@ public class ResourceEncoder extends AbstractSingleValueEncoder<Resource> {
|
||||
|
||||
@Override
|
||||
public boolean canEncode(ResolvableType elementType, MimeType mimeType) {
|
||||
Class<?> clazz = elementType.getRawClass();
|
||||
Class<?> clazz = elementType.resolve(Object.class);
|
||||
return (super.canEncode(elementType, mimeType) && Resource.class.isAssignableFrom(clazz));
|
||||
}
|
||||
|
||||
|
||||
@@ -69,9 +69,8 @@ public class ResourceRegionEncoder extends AbstractEncoder<ResourceRegion> {
|
||||
|
||||
@Override
|
||||
public boolean canEncode(ResolvableType elementType, MimeType mimeType) {
|
||||
|
||||
return super.canEncode(elementType, mimeType)
|
||||
&& ResourceRegion.class.isAssignableFrom(elementType.getRawClass());
|
||||
&& ResourceRegion.class.isAssignableFrom(elementType.resolve(Object.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user