commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Levon Karayan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (LANG-534) ArrayUtils should have method to conver null arrays to empty ones to help with Defensive coding
Date Mon, 21 Sep 2009 07:10:17 GMT

     [ https://issues.apache.org/jira/browse/LANG-534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Levon Karayan updated LANG-534:
-------------------------------

    Attachment: 20090920LevonArrayUtils-nullToEmpty.patch

Here is the implementation and the unit tests to accompany them.  Hopefully all that is required
for this is for a commiter to apply the patch after giving it a once-over.

> ArrayUtils should have method to conver null arrays to empty ones to help with Defensive
coding
> -----------------------------------------------------------------------------------------------
>
>                 Key: LANG-534
>                 URL: https://issues.apache.org/jira/browse/LANG-534
>             Project: Commons Lang
>          Issue Type: Improvement
>            Reporter: Levon Karayan
>            Priority: Trivial
>         Attachments: 20090920LevonArrayUtils-nullToEmpty.patch
>
>   Original Estimate: 0.17h
>  Remaining Estimate: 0.17h
>
> There are APIs that I've come across that return <code>null</code> Arrays
in the event where there are no results.  Often these APIs correctly throw exceptions when
there is an "exceptional event", but no results isn't exceptional.   This causes the programmer
to make extra tests for null throughout the code to deal with the null case, and sometimes
these null cases are added after a customer searched for gobleygook and got a NullPointerException.
 It's just far cleaner/safer to convert these null arrays to empty ones.
> Another benefit to this method is that if the array being passed in is actually already
an empty array, it will swap the pointer for the <code>static final</code> in
the ArrayUtils class to help with memory fragmentation.
> e.g.
> BEFORE:
> try
> {
>   results = customer.getResults(query);
> } catch ( IOException ioex ) {
>   //  ...
> }
> if ( null == results )
> {
>    results = new int[0]{};
> }
> // do stuff
> AFTER
> try
> {
>   results = ArrayUtils.nullToEmpty(customer.getResults(query));
> } catch ( IOException ioex ) {
>   //  ...
> }
> // do stuff

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message