X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/03bf0439593dc1c5e02bdd49e18d649d1c24e721..1bf848cde1311314ca754b734e2b7cd951a3f979:/src/main/java/org/asamk/signal/JsonWriter.java diff --git a/src/main/java/org/asamk/signal/JsonWriter.java b/src/main/java/org/asamk/signal/JsonWriter.java index 3cc87514..e7549adf 100644 --- a/src/main/java/org/asamk/signal/JsonWriter.java +++ b/src/main/java/org/asamk/signal/JsonWriter.java @@ -6,32 +6,38 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; +import java.io.Writer; import java.nio.charset.StandardCharsets; public class JsonWriter { - private final OutputStreamWriter writer; + private final Writer writer; private final ObjectMapper objectMapper; public JsonWriter(final OutputStream writer) { - this.writer = new OutputStreamWriter(writer, StandardCharsets.UTF_8); + this.writer = new BufferedWriter(new OutputStreamWriter(writer, StandardCharsets.UTF_8)); objectMapper = new ObjectMapper(); - objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.PUBLIC_ONLY); objectMapper.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET); } - public void write(final Object object) throws IOException { + public void write(final Object object) { try { - objectMapper.writeValue(writer, object); - } catch (JsonProcessingException e) { - // Some issue with json serialization, probably caused by a bug + try { + objectMapper.writeValue(writer, object); + } catch (JsonProcessingException e) { + // Some issue with json serialization, probably caused by a bug + throw new AssertionError(e); + } + writer.write(System.lineSeparator()); + writer.flush(); + } catch (IOException e) { throw new AssertionError(e); } - writer.write(System.lineSeparator()); - writer.flush(); } }