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

Potential Autoboxing problems with BooleanUtils methods

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • None
    • 3.0
    • None
    • None

    Description

      FindBugs points out the following are bad:

      org.apache.commons.lang3.BooleanUtils.toBooleanObject(String, String, String, String)
      org.apache.commons.lang3.BooleanUtils.toBooleanObject(String
      org.apache.commons.lang3.BooleanUtils.toBooleanObject(Integer, Integer, Integer, Integer)
      org.apache.commons.lang3.BooleanUtils.toBooleanObject(Integer)
      org.apache.commons.lang3.BooleanUtils.toBooleanObject(int, int, int, int)
      org.apache.commons.lang3.BooleanUtils.negate(Boolean)

      For each case it's because the method returns Boolean, and returns null. That used to be a feature, but apparently that plays merry havoc with autoboxing:

      ++NP: Method with Boolean return type returns explicit null (NP_BOOLEAN_RETURN_NULL)

      ++A method that returns either Boolean.TRUE, Boolean.FALSE or null is an accident waiting to happen. This method can be invoked as though it returned a value of type boolean, and the compiler will insert automatic unboxing of the Boolean value. If a null value is returned, this will result in a NullPointerException.

      The only solution imo is to let autoboxing do its job and remove these methods.

      Attachments

        Activity

          People

            Unassigned Unassigned
            bayard Henri Yandell
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: