RFR: 4668290: unclear spec for Polygon.bounds field

Phil Race prr at openjdk.org
Fri Sep 30 21:22:26 UTC 2022


On Mon, 26 Sep 2022 02:27:53 GMT, SWinxy <duke at openjdk.org> wrote:

> New documentation replaces the `This value can be null.`:
> 
> When created, {@link #invalidate() invalidated}, or {@link #reset() reset},
> this becomes {@code null}. To get out of the null state,
> {@link #getBounds()} called with {@link #npoints} being greater than
> {@code 0} will transfer into a non-null {@link Rectangle}.
> 
> 
> I think I've got the reason for why it can be `null` correct, but you never know.
> 
> In javax.swing.text.html.Map, I've replaced setting the field to null with the equivalent #invalidate(). This may mean we can make the field private in the future.

src/java.desktop/share/classes/java/awt/Polygon.java line 111:

> 109:      * {@link #getBounds()} called with {@link #npoints} being greater than
> 110:      * {@code 0} will transfer into a non-null {@link Rectangle}.
> 111:      *

Another dubious piece of design. This should never have been exposed in the API.
What we need to say here is
/*
 * The value of this field is updated by the implementation which may set it to null and will
 *   re-evaluate it as needed. Application sub-classes should never access this field.
 */
And leave it at that.

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

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



More information about the client-libs-dev mailing list