Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
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.