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