RFR: 4138921: TextLayout handling of empty strings
Phil Race
prr at openjdk.org
Wed Sep 17 22:22:18 UTC 2025
On Wed, 3 Sep 2025 17:37:00 GMT, Phil Race <prr at openjdk.org> wrote:
>> `TextLayout` should deal more gracefully with zero length strings. Currently the exception listed below is the one that is thrown.
>>
>> `new TextLayout("", f, new FontRenderContext(null, false, false));`
>>
>>> Exception in thread "main" java.lang.IllegalArgumentException: Zero length
>>> string passed to TextLayout constructor.
>>> at java.lang.Throwable.<init>(Compiled Code)
>>> at java.lang.Exception.<init>(Compiled Code)
>>> at java.lang.RuntimeException.<init>(Compiled Code)
>>> at java.lang.IllegalArgumentException.<init>(Compiled Code)
>>> at java.awt.font.TextLayout.<init>(Compiled Code)
>>> at test.main(Compiled Code)
>>
>> **REVIEWER NOTE:** Please check the empty-string `TextLayout` behavior documented in `TextLayoutConstructorTest` carefully; a badly-behaving empty `TextLayout` is probably worse than a `TextLayout` which doesn't allow empty strings...
>
> I have updated the CSR and marked it as reviewed. You may now move it to 'finalized'.
> @prrace: In the [CSR](https://bugs.openjdk.org/browse/JDK-8366563) for this change, Joe said "Please consider whether or not a release note is warranted for the behavior change on which exception gets thrown." I think this is above my pay grade, no? Do I need to raise any flags with anyone about this?
I don't think it is high profile enough to need a release note.
However one thing that you forgot is that I wrote early on in this PR :
"Several JCK tests for TextLayout constructor fail (surprise !)
They all fail because they use a null FRC.
We need a CSR for this anyway but I'll need to co-ordinate problem listing those tests as part of this bug so we don't see failures as soon as it is pushed."
meaning I was hoping I could push that problem listing (it is an internal thing) right at the same time you pushed, because our CI system started to report the failures already.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/26947#issuecomment-3304724226
More information about the client-libs-dev
mailing list