Uploaded image for project: 'Commons Lang'
  1. Commons Lang
  2. LANG-534

ArrayUtils should have method to convert null arrays to empty ones to help with Defensive coding

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Trivial
    • Resolution: Fixed
    • None
    • 2.5
    • lang.*
    • None

    Description

      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, and it often shouldn't be. 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 arrays.

      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 decrease 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

      Attachments

        Activity

          People

            Unassigned Unassigned
            levonk Levon Karayan
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: