[
https://issues.apache.org/jira/browse/BCEL-269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
emopers updated BCEL-269:
-------------------------
Attachment: BCEL-269-0.patch
> Flushing DataOutputStream before calling toByteArray on the underlying
> ByteArrayOutputStream
> --------------------------------------------------------------------------------------------
>
> Key: BCEL-269
> URL: https://issues.apache.org/jira/browse/BCEL-269
> Project: Commons BCEL
> Issue Type: Bug
> Reporter: emopers
> Priority: Minor
> Attachments: BCEL-269-0.patch
>
>
> In src/main/java/org/apache/commons/bcel6/generic/InstructionList.java
> {code}
> ByteArrayOutputStream b = new ByteArrayOutputStream();
> DataOutputStream out = new DataOutputStream(b);
> try {
> for (InstructionHandle ih = start; ih != null; ih =
> ih.getNext()) {
> Instruction i = ih.getInstruction();
> i.dump(out); // Traverse list
> }
> } catch (IOException e) {
> System.err.println(e);
> return new byte[0];
> {code}
> When a DataOutputStream instance wraps an underlying ByteArrayOutputStream
> instance,
> it is recommended to flush or close the DataOutputStream before invoking the
> underlying instances's toByteArray(). Also, it is a good practice to call
> flush/close explicitly as mentioned for example
> http://stackoverflow.com/questions/2984538/how-to-use-bytearrayoutputstream-and-dataoutputstream-simultaneously-java.
> The patch is to add flush method before calling toByteArray.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)