This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-imaging.git
commit b90b2fecd97240bb4d57402adbc39fdeac75920d Author: Gary Gregory <[email protected]> AuthorDate: Tue Mar 21 10:49:56 2023 -0400 BinaryOutputStream now subclasses FilterOutputStream instead of OutputStream and does not need to count bytes --- src/changes/changes.xml | 3 ++ .../commons/imaging/common/BinaryOutputStream.java | 35 ++++++---------------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 47917d02..7d39572d 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -54,6 +54,9 @@ The <action> type attribute can be add,update,fix,remove. <action issue="IMAGING-342" dev="kinow" type="fix" due-to="Glavo"> Read PNG metadata from iTXt chunk. </action> + <action dev="ggregory" type="update" due-to="Gary Gregory"> + BinaryOutputStream now subclasses FilterOutputStream instead of OutputStream and does not need to count bytes. + </action> <!-- UPDATE --> <action dev="kinow" type="update" due-to="Dependabot, Gary Gregory"> Bump actions/cache from 3.0.4 to 3.0.10 #225, #228, #239, #240. diff --git a/src/main/java/org/apache/commons/imaging/common/BinaryOutputStream.java b/src/main/java/org/apache/commons/imaging/common/BinaryOutputStream.java index 1d393d9a..631ddcf5 100644 --- a/src/main/java/org/apache/commons/imaging/common/BinaryOutputStream.java +++ b/src/main/java/org/apache/commons/imaging/common/BinaryOutputStream.java @@ -16,23 +16,23 @@ */ package org.apache.commons.imaging.common; +import java.io.FilterOutputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.ByteOrder; -public class BinaryOutputStream extends OutputStream { - private final OutputStream os; - // default byte order for Java, many file formats. +public class BinaryOutputStream extends FilterOutputStream { + + /** Default byte order for Java, many file formats. */ private ByteOrder byteOrder = ByteOrder.BIG_ENDIAN; - private int count; public BinaryOutputStream(final OutputStream os, final ByteOrder byteOrder) { + super(os); this.byteOrder = byteOrder; - this.os = os; } public BinaryOutputStream(final OutputStream os) { - this.os = os; + super(os); } protected void setByteOrder(final ByteOrder byteOrder) { @@ -45,34 +45,17 @@ public class BinaryOutputStream extends OutputStream { @Override public void write(final int i) throws IOException { - os.write(i); - count++; + super.write(i); } @Override public final void write(final byte[] bytes) throws IOException { - os.write(bytes, 0, bytes.length); - count += bytes.length; + super.write(bytes, 0, bytes.length); } @Override public final void write(final byte[] bytes, final int offset, final int length) throws IOException { - os.write(bytes, offset, length); - count += length; - } - - @Override - public void flush() throws IOException { - os.flush(); - } - - @Override - public void close() throws IOException { - os.close(); - } - - public int getByteCount() { - return count; + super.write(bytes, offset, length); } public final void write4Bytes(final int value) throws IOException {
