Hi Naoto,

TextLayout currently is not allowed to represent the layout of an empty
string, and I'm looking to change that (see JDK-4138921).

One of the three TextLayout constructors which needs to change takes
an AttributedCharacterIterator, which is usually obtained from an
AttributedString. However, AttributedString has a similar restriction, in
that it can only wrap an empty string if it doesn't have any attributes. Do
you know why this is? Is this a restriction which can also be relaxed so as
to avoid painful surprises for users of these APIs?

Take care,

Daniel


On Mon, Aug 11, 2025 at 7:12 PM Philip Race <philip.r...@oracle.com> wrote:

>
>
> 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