Fix issue in BufferedImageHttpMessageConverter
This change ensures BufferedImageHttpMessageConverter writes when "*/*" is requested. Issue: SPR-7763
This commit is contained in:
parent
4611d150fe
commit
2391277115
|
|
@ -132,7 +132,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter<B
|
|||
}
|
||||
|
||||
private boolean isWritable(MediaType mediaType) {
|
||||
if (mediaType == null) {
|
||||
if (mediaType == null || MediaType.ALL.equals(mediaType)) {
|
||||
return true;
|
||||
}
|
||||
Iterator<ImageWriter> imageWriters = ImageIO.getImageWritersByMIMEType(mediaType.toString());
|
||||
|
|
@ -191,7 +191,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter<B
|
|||
public void write(BufferedImage image, MediaType contentType, HttpOutputMessage outputMessage)
|
||||
throws IOException, HttpMessageNotWritableException {
|
||||
|
||||
if (contentType == null) {
|
||||
if (contentType == null || contentType.isWildcardType() || contentType.isWildcardSubtype()) {
|
||||
contentType = getDefaultContentType();
|
||||
}
|
||||
Assert.notNull(contentType,
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ public class BufferedImageHttpMessageConverterTests {
|
|||
public void canWrite() {
|
||||
assertTrue("Image not supported", converter.canWrite(BufferedImage.class, null));
|
||||
assertTrue("Image not supported", converter.canWrite(BufferedImage.class, new MediaType("image", "png")));
|
||||
assertTrue("Image not supported", converter.canWrite(BufferedImage.class, new MediaType("*", "*")));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -85,7 +86,7 @@ public class BufferedImageHttpMessageConverterTests {
|
|||
converter.setDefaultContentType(contentType);
|
||||
BufferedImage body = ImageIO.read(logo.getFile());
|
||||
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
||||
converter.write(body, contentType, outputMessage);
|
||||
converter.write(body, new MediaType("*", "*"), outputMessage);
|
||||
assertEquals("Invalid content type", contentType, outputMessage.getHeaders().getContentType());
|
||||
assertTrue("Invalid size", outputMessage.getBodyAsBytes().length > 0);
|
||||
BufferedImage result = ImageIO.read(new ByteArrayInputStream(outputMessage.getBodyAsBytes()));
|
||||
|
|
|
|||
Loading…
Reference in New Issue