From 12a67421891bb28f1bece38e61495e49650a30c1 Mon Sep 17 00:00:00 2001 From: joerg1985 <16140691+joerg1985@users.noreply.github.com> Date: Tue, 12 Mar 2024 18:58:31 +0100 Subject: [PATCH] [rest] special handling for StreamingOutput (#4145) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörg Sautter --- .../core/io/rest/core/internal/GsonMessageBodyWriter.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/internal/GsonMessageBodyWriter.java b/bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/internal/GsonMessageBodyWriter.java index 3bf8d8645..521e8577c 100644 --- a/bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/internal/GsonMessageBodyWriter.java +++ b/bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/internal/GsonMessageBodyWriter.java @@ -23,6 +23,7 @@ import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response.ResponseBuilder; +import javax.ws.rs.core.StreamingOutput; import javax.ws.rs.ext.MessageBodyWriter; import org.openhab.core.io.rest.JSONInputStream; @@ -81,6 +82,8 @@ public class GsonMessageBodyWriter implements MessageBodyWriter { try { if (object instanceof InputStream stream && object instanceof JSONInputStream) { stream.transferTo(entityStream); + } else if (object instanceof StreamingOutput streaming) { + streaming.write(entityStream); } else { entityStream.write(gson.toJson(object).getBytes(StandardCharsets.UTF_8)); }