Do not close passed-in Writer (#604)
diff --git a/src/main/java/org/eclipse/yasson/internal/JsonBinding.java b/src/main/java/org/eclipse/yasson/internal/JsonBinding.java
index fb185de..5cacc63 100644
--- a/src/main/java/org/eclipse/yasson/internal/JsonBinding.java
+++ b/src/main/java/org/eclipse/yasson/internal/JsonBinding.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2025 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -12,6 +12,7 @@
 
 package org.eclipse.yasson.internal;
 
+import java.io.FilterWriter;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Reader;
@@ -145,7 +146,7 @@
     @Override
     public void toJson(Object object, Writer writer) throws JsonbException {
         final SerializationContextImpl marshaller = new SerializationContextImpl(jsonbContext);
-        try (JsonGenerator generator = writerGenerator(writer)) {
+        try (JsonGenerator generator = writerGenerator(new CloseSuppressingWriter(writer))) {
             marshaller.marshallWithoutClose(object, generator);
         }
     }
@@ -153,7 +154,7 @@
     @Override
     public void toJson(Object object, Type type, Writer writer) throws JsonbException {
         final SerializationContextImpl marshaller = new SerializationContextImpl(jsonbContext, type);
-        try (JsonGenerator generator = writerGenerator(writer)) {
+        try (JsonGenerator generator = writerGenerator(new CloseSuppressingWriter(writer))) {
             marshaller.marshallWithoutClose(object, generator);
         }
     }
@@ -234,4 +235,17 @@
         jsonbContext.getComponentInstanceCreator().close();
     }
 
+    private static class CloseSuppressingWriter extends FilterWriter {
+
+        protected CloseSuppressingWriter(final Writer in) {
+            super(in);
+        }
+
+        @Override
+        public void close() {
+            // do not close
+        }
+
+    }
+
 }