liff opened a new pull request, #578:
URL: https://github.com/apache/poi/pull/578

   In Java 21 the RuntimeException from `sun.awt.FontConfiguration` is not 
wrapped in an `InternalError` anymore and appears directly as a 
`RuntimeException` when constructing a `TextLayout`.
   
   So, when `ignoreMissingFontSystem` is set also allow a `RuntimeException` to 
indicate a missing font system.
   
   A demonstration of the difference (without POI and assuming JDK >=17 and 
Docker are available):
   
   1. Create `Test.java` with content:
       ```java
       public class Test {
           public static void main(String args[]) {
               var frc = new java.awt.font.FontRenderContext(null, true, true);
               var str = new java.text.AttributedString(String.valueOf('W'));
               var layout = new java.awt.font.TextLayout(str.getIterator(), 
frc);
   
               System.out.println(layout.getAdvance());
           }
       }
       ```
   3. Compile
   2. Run on Java 17:
       ```shell
      docker run -it --rm -v $(pwd)/Test.class:/Test.class 
amazoncorretto:17-alpine java Test
       ```
   3. Run on Java 21:
       ```shell
       docker run -it --rm -v $(pwd)/Test.class:/Test.class 
amazoncorretto:21-alpine java Test
       ```
   
   On Java 17, you’ll see:
   
   ```
   Exception in thread "main" java.lang.InternalError: 
java.lang.reflect.InvocationTargetException
   …
   Caused by: java.lang.RuntimeException: Fontconfig head is null, check your 
fonts or fonts configuration
   ```
   
   On Java 21, the result is:
   
   ```
   Exception in thread "main" java.lang.RuntimeException: Fontconfig head is 
null, check your fonts or fonts configuration
   …
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org

Reply via email to