You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Alexey Petrenko (JIRA)" <ji...@apache.org> on 2007/03/20 15:39:32 UTC
[jira] Commented: (HARMONY-3373)
[classlib][luni]java.io.ByteArrayOutputStream: avoid to use exception
mechanism as logic in write(int)
[ https://issues.apache.org/jira/browse/HARMONY-3373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12482406 ]
Alexey Petrenko commented on HARMONY-3373:
------------------------------------------
Leo,
thanks for catching this up. This piece of code really need to be rewritten.
But you code is not equal to the original one since you removed (buf == null) handling.
So I suggest something like
if (buff != null) {
if (count == buf.length) {
expand(1);
}
buf[count++] = (byte) oneByte;
}
Or (buf == null) is impossible case?
What do you think?
> [classlib][luni]java.io.ByteArrayOutputStream: avoid to use exception mechanism as logic in write(int)
> ------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3373
> URL: https://issues.apache.org/jira/browse/HARMONY-3373
> Project: Harmony
> Issue Type: Improvement
> Components: Classlib
> Reporter: Leo Li
> Assigned To: Alexey Petrenko
> Attachments: patch-3373.diff
>
>
> In ByteArrayOutputStream.write(int):
> public synchronized void write(int oneByte) {
> try {
> buf[count] = (byte) oneByte;
> count++;
> } catch (IndexOutOfBoundsException e) {
> // Expand when necessary
> expand(1);
> buf[count++] = (byte) oneByte;
> } catch (NullPointerException e) {
> }
> }
> Exception mechanism is adopted as a logic to judge whether current position is out of the boundary of the backing array. So, I recommend to use explicit condtion to judge it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.