Code Review Request: 7160242: (prefs) Preferences.remove(null) does not throw NPE [macosx]

Rémi Forax forax at univ-mlv.fr
Tue Apr 24 22:07:14 UTC 2012


On 04/24/2012 11:49 PM, Kurchi Hazra wrote:
> Hi,
>
> Updated webrev:
> http://cr.openjdk.java.net/~khazra/7160242/webrev.01/
>
> Thanks,
> Kurchi

Hi Kurchi,
Object.requireNonNull() return the first argument,
so there is no need to store it again in key.
So instead of

key = Objects.requireNonNull(key, "Specified key cannot be null");

you can just write:

Objects.requireNonNull(key, "Specified key cannot be null");

or if you want to reuse the return value (it's less readable in my opinion)
you can write :

file.removeKeyFromNode(path,
    Objects.requireNonNull(key, "Specified key cannot be null"));

but usually, this feature is used in constructor,
something like this :

class Person {
   ...
   public Person(String name) {
     this.name = Objects.requireNonNull(name);
   }
}

cheers,
Rémi

>
> On 4/21/2012 4:23 AM, Rémi Forax wrote:
>> On 04/21/2012 09:52 AM, Alan Bateman wrote:
>>> On 20/04/2012 20:09, Kurchi Subhra Hazra wrote:
>>>> Hi,
>>>>
>>>> This change inserts a null check for the key being passed to 
>>>> Preferences.remove() on Mac, so that
>>>> the method throws a NullPointerException when key is null 
>>>> (according to its specification).
>>>>
>>>> Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7160242
>>>> Webrev: http://cr.openjdk.java.net/~khazra/7160242/webrev.00/ 
>>>> Thanks, Kurchi
>>> Kurchi - would you be able to add a test to test/java/util/prefs so 
>>> that we have coverage for this case?
>>>
>>> -Alan.
>>
>> Also you can use Objects.requireNonNull()
>> http://docs.oracle.com/javase/7/docs/api/java/util/Objects.html#requireNonNull%28T,%20java.lang.String%29 
>>
>>
>> Rémi
>>
>




More information about the core-libs-dev mailing list