On Thu, 9 Jun 2022 18:45:15 GMT, Phil Race <p...@openjdk.org> wrote:

>> src/java.desktop/share/classes/javax/swing/border/EtchedBorder.java line 158:
>> 
>>> 156:         AffineTransform at = new AffineTransform();
>>> 157:         Stroke oldStk = new BasicStroke();
>>> 158:         int stkWidth = 1;
>> 
>> Now the usage of these variables is restricted to the case where 
>> `resetTransform` is set to `true`. Therefore, they can be left uninitialised 
>> here; a value is assigned before it's used in all the code paths as far as I 
>> can see.
>> 
>> It's just a small (premature) optimisation, it avoids creating two objects. 
>> I don't insist though.
>
> I'd be inclined to remove the initialisation.

I see, the static analyser is not smart enough to notice that the variables get 
initialised before they're used.

To resolve the error, initialise `at` and `oldStk` with `null`.

`stkWidth` needs to be initialised by 1 as it's currently done, it's always 
used.

-------------

PR: https://git.openjdk.org/jdk/pull/7449

Reply via email to