diff --git a/CHANGELOG.md b/CHANGELOG.md index 12c0cdbb..f012682b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ FlatLaf Change Log - Extras: `FlatSVGIcon` color filters now can access painting component to implement component state based color mappings. (PR #906) +#### Fixed bugs + +- HTML: Fixed NPE when using HTML text on a component with `null` font. (issue + #930; PR #931; regression in 3.5) ## 3.5.3 diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatHTML.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatHTML.java index 33173a5a..a91bfa4c 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatHTML.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatHTML.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import java.awt.Color; +import java.awt.Font; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Arrays; @@ -74,9 +75,9 @@ public class FlatHTML for( int i = 1; i <= 7; i++ ) System.out.println( i+": "+ styleSheet.getPointSize( i ) ); debug*/ - int fontBaseSize = c.getFont().getSize(); + Font font = c.getFont(); if( styleSheet.getPointSize( 7 ) != 36f || - styleSheet.getPointSize( 4 ) == fontBaseSize ) + font == null || styleSheet.getPointSize( 4 ) == font.getSize() ) return; // check whether view uses "absolute-size" keywords (e.g. "x-large") for font-size @@ -97,7 +98,7 @@ debug*/ return; // BASE_SIZE rule is parsed in javax.swing.text.html.StyleSheet.addRule() - String style = ""; + String style = ""; String openTag = ""; String closeTag = ""; diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatHTML.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatHTML.java index f6026112..4a8e442b 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatHTML.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatHTML.java @@ -16,6 +16,7 @@ package com.formdev.flatlaf.ui; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Locale; import javax.swing.JComponent; @@ -73,6 +74,15 @@ public class TestFlatHTML testHtmlBaseSize( "${BASE_SIZE}