JDK-4138921: TextLayout handling of empty strings
Philip Race
philip.race at oracle.com
Mon Aug 11 17:11:55 UTC 2025
On 8/11/25 9:20 AM, Daniel Gredler wrote:
> Hi all,
>
> I was thinking of taking a stab at JDK-4138921 [1], and I have a
> couple of questions.
>
> First, there is a related API oddity in that null FontRenderContext
> parameters passed to the TextLayout constructors cause a
> NullPointerException, rather than an IllegalArgumentException (like
> all other parameters). Can this behavior also be changed?
None of these are documented .. they all should be.
It is a bit odd that frc is the only one not explicitly checked so the
NPE is just what 'happens'.
I'd be reluctant to change the NPE without a good reason and I'm
half-wondering if a null FRC was
supposed to default to a default FRC ?? But somewhere along the line the
implementation changed.
I'd say just specify what happens for complete compatibility.
>
> Second, changing all three TextLayout constructors to accept empty
> strings sort of implies that we should also allow empty strings in
> AttributedString instances (this is currently only allowed if the
> attribute map is empty). Is it OK to change this behavior as well?
I don't think I ever understood why this was dis-allowed on TextLayout.
Perhaps it was to prevent some incorrect usage from ever slipping into
being acceptable ?
AttributedString is part of the java.base module, I don't have any say
over that, although in the very beginning
there was a decent overlap in the people working on that and TextLayout etc.
I'd start by asking Naoto (cc'ed).
-phil.
>
> Let me know your thoughts!
>
> Daniel
>
> [1] https://bugs.openjdk.org/browse/JDK-4138921
>
>
More information about the client-libs-dev
mailing list