Unnecessary using intermediate ByteArrayInputStream to copy from given byte
array to OutputStream in FlateFilter::decode
------------------------------------------------------------------------------------------------------------------------
Key: PDFBOX-1006
URL: https://issues.apache.org/jira/browse/PDFBOX-1006
Project: PDFBox
Issue Type: Improvement
Affects Versions: 1.5.0
Reporter: Sergey Vladimirov
Priority: Trivial
It is not required to use intermediate ByteArrayInputStream to copy from given
byte array to OutputStream. When we have byte[], it's okay just to call
write(byte[]) method of OutputStream to write all data at once.
AS IS:
// Copy data to ByteArrayInputStream for reading
bais = new ByteArrayInputStream(baos.toByteArray());
baos.close();
baos = null;
byte[] decodedData = decodePredictor(predictor, colors,
bitsPerPixel, columns, bais);
bais.close();
bais = new ByteArrayInputStream(decodedData);
// write decoded data to result
while ((amountRead = bais.read(buffer)) != -1)
{
result.write(buffer, 0, amountRead);
}
bais.close();
bais = null;
TO BE:
// Copy data to ByteArrayInputStream for reading
bais = new ByteArrayInputStream(baos.toByteArray());
baos.close();
baos = null;
byte[] decodedData = decodePredictor(predictor, colors,
bitsPerPixel, columns, bais);
bais.close();
bais = null;
result.write(decodedData);
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira