pepijnve / ditaa

A stripped down version of ditaa.
GNU Lesser General Public License v3.0
10 stars 3 forks source link

Infinite loop/long processing on FontMeasurer.getAscent #11

Open ggrossetie opened 1 year ago

ggrossetie commented 1 year ago

I encountered the following error with ditamini-0.14:

io.vertx.core.VertxException: Thread blocked
  at java.base@11.0.15/java.util.concurrent.ConcurrentHashMap.get(Unknown Source)
  at java.desktop@11.0.15/sun.font.FontDesignMetrics.getMetrics(Unknown Source)
  at java.desktop@11.0.15/sun.java2d.SunGraphics2D.getFontMetrics(Unknown Source)
  at app//org.stathissideris.ditaa.graphics.FontMeasurer.getAscent(FontMeasurer.java:80)
  at app//org.stathissideris.ditaa.graphics.FontMeasurer$2.test(FontMeasurer.java:110)
  at app//org.stathissideris.ditaa.graphics.FontMeasurer.deriveFont(FontMeasurer.java:138)
  at app//org.stathissideris.ditaa.graphics.FontMeasurer.getFontFor(FontMeasurer.java:115)
  at app//org.stathissideris.ditaa.graphics.Diagram.<init>(Diagram.java:493)
  at app//org.stathissideris.ditaa.core.CommandLineConverter.convertToImage(CommandLineConverter.java:144)
  at app//org.stathissideris.ditaa.core.CommandLineConverter.doConvert(CommandLineConverter.java:110)
  at app//org.stathissideris.ditaa.core.CommandLineConverter.convert(CommandLineConverter.java:97)
  at app//io.kroki.server.service.Ditaa.convert(Ditaa.java:71)
  at app//io.kroki.server.service.Ditaa.lambda$convert$0(Ditaa.java:58)
  at app//io.kroki.server.service.Ditaa$$Lambda$255/0x0000000100497040.handle(Unknown Source)
  at app//io.vertx.core.impl.ContextImpl.lambda$null$0(ContextImpl.java:159)
  at app//io.vertx.core.impl.ContextImpl$$Lambda$206/0x00000001002e3040.handle(Unknown Source)
  at app//io.vertx.core.impl.AbstractContext.dispatch(AbstractContext.java:100)
  at app//io.vertx.core.impl.ContextImpl.lambda$executeBlocking$1(ContextImpl.java:157)
  at app//io.vertx.core.impl.ContextImpl$$Lambda$204/0x00000001002e3840.run(Unknown Source)
  at app//io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)
  at app//io.vertx.core.impl.TaskQueue$$Lambda$103/0x00000001001be440.run(Unknown Source)
  at java.base@11.0.15/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
  at java.base@11.0.15/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  at app//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
  at java.base@11.0.15/java.lang.Thread.run(Unknown Source)

I see that there's now a fixedFontSize that returns the baseFont (thus avoiding computation?) but I cannot find how to enable this option? Also, did you encounter this error as well (maybe that's why you've introduced this new option)?