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



Reply via email to