Please find the updated webrev at:

http://cr.openjdk.java.net/~sebastian/5108778/macos/webrev.00/

For some general discussion on regression-tests for this please find the
thread in discuss[0][1] and for the general suggestion to make more
wrapper-type-constructors deprecated find [2] at core-libs-dev.

[0]
http://mail.openjdk.java.net/pipermail/discuss/2015-September/003804.html
[1] http://mail.openjdk.java.net/pipermail/discuss/2015-October/003805.html
[2]
http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-October/035642.html

-- Sebastian

On 10/06/2015 03:06 PM, Alexander Scherbatiy wrote:
> On 10/3/2015 5:40 AM, Stuart Marks wrote:
>>
>>
>> On 9/28/15 2:03 AM, Alexander Scherbatiy wrote:
>>>   Is it possible to use autoboxing in the fix instead of
>>> Boolean.valueOf(someBooleanVariable)?
>>
>> Hi,
>>
>> These cases are all interesting because they end up requiring boxed
>> Boolean values, whether explicitly or implicitly via autoboxing:
>>
>> 1. AquaTabbedPaneUI.java -- use of boxed Boolean as a tri-state (!)
>>
>> 2. CAccessibility.java -- return value from Callable<Boolean>
>>
>> 3. LWCToolkit.java -- value in Properties (like Map<Object,Object>)
>>
>> For #2 and #3 I think auto-boxing instead of valueOf() is just fine.
>> I guess using Boolean.TRUE or Boolean.FALSE instead of true or false
>> is ok, as it's a micro-optimization to prevent autoboxing from
>> generating a call to Boolean.valueOf(true|false). I'm sure the JIT
>> compiler will inline such calls, so this speeds up interpreted code a
>> tiny bit at the expense of a little verbosity in the code.
>>
>> The explicit calls to Boolean.valueOf(some boolean expression) I
>> think can simply be replaced with autoboxing in all cases.
>>
>> The weird one is in AquaTabbedPaneUI.java, which has
>>
>>     protected Boolean isDefaultFocusReceiver = null;
>>
>
>   I do not mean to change the isDefaultFocusReceivertype type to
> boolean. It was just interesting are there pros and cons to use a
> short version with autoboxing  for assignment:
>       isDefaultFocusReceiver = defaultFocusReceiver != null &&
> defaultFocusReceiver.equals(component);
>   instead of the long version:
>       isDefaultFocusReceiver = Boolean.valueOf(defaultFocusReceiver !=
> null && defaultFocusReceiver.equals(component));
>
>    Thanks,
>    Alexandr.
>
>> Ugh! It would be nice to get rid of null as a marker for
>> uninitialized state, but that might require too much analysis to show
>> that the change would be correct. This is, I think, the only case
>> where the code has to be explicit about dealing with a boxed Boolean
>> object that might be null, as opposed to true or false.
>>
>> The only place that really has to do that is
>> isDefaultFocusReceiver(), which checks for null up front. I'm not
>> sure that using Boolean.valueOf() and Boolean.booleanValue() in the
>> rest of the method are really helpful in denoting that this is a
>> boxed, nullable Boolean though. So I'd switch to autoboxing here too.
>>
>> s'marks
>
>

Reply via email to