The [structurizr] diagram type is detected, but rendering fails with the following error in the logs:
2023-05-27 09:18:24,216 [ 124293] SEVERE - org.asciidoctor.jruby.internal.JRubyAsciidoctor - org.jruby.RubyNoMethodError
2023-05-27 09:18:24,217 [ 124294] WARN - #org.asciidoc.intellij.AsciiDocWrapper - unable to render AsciiDoc document
org.asciidoctor.jruby.internal.AsciidoctorCoreException: org.jruby.exceptions.NoMethodError: (NoMethodError) asciidoctor: FAILED: /Users/timw/projects/indexity/empi/indexing/backend/dev/doc/struct_test.adoc: Failed to load AsciiDoc document - undefined method gsub' for #<Asciidoctor::Reader:0x4c216325> at org.asciidoctor.jruby.internal.JRubyAsciidoctor.convert(JRubyAsciidoctor.java:330) at org.asciidoctor.jruby.internal.JRubyAsciidoctor.convert(JRubyAsciidoctor.java:346) at org.asciidoctor.jruby.internal.JRubyAsciidoctor.convert(JRubyAsciidoctor.java:341) at org.asciidoc.intellij.AsciiDocWrapper.render(AsciiDocWrapper.java:816) at org.asciidoc.intellij.AsciiDocWrapper.render(AsciiDocWrapper.java:782) at org.asciidoc.intellij.annotator.AsciiDocExternalAnnotatorProcessor.doAnnotate(AsciiDocExternalAnnotatorProcessor.java:98) at org.asciidoc.intellij.annotator.AsciiDocExternalAnnotatorProcessor.doAnnotate(AsciiDocExternalAnnotatorProcessor.java:52) at com.intellij.codeInsight.daemon.impl.ExternalToolPass.doAnnotate(ExternalToolPass.java:204) at com.intellij.codeInsight.daemon.impl.ExternalToolPass.doAnnotate(ExternalToolPass.java:198) at com.intellij.codeInsight.daemon.impl.ExternalToolPass.runChangeAware(ExternalToolPass.java:274) at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.lambda$run$1(ExternalToolPass.java:176) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173) at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:361) at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:339) at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.run(ExternalToolPass.java:175) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:350) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:340) at com.intellij.util.ui.update.MergingUpdateQueue.doExecute(MergingUpdateQueue.java:297) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:280) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:245) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:249) at com.intellij.util.Alarm$Request.runSafely(Alarm.java:365) at com.intellij.util.Alarm$Request.run(Alarm.java:354) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:272) at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:248) at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:28) at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:221) at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:227) at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:210) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.jruby.exceptions.NoMethodError: (NoMethodError) asciidoctor: FAILED: /Users/timw/projects/indexity/empi/indexing/backend/dev/doc/struct_test.adoc: Failed to load AsciiDoc document - undefined methodgsub' for #
at RUBY.load(uri:classloader:/gems/asciidoctor-2.0.18/lib/asciidoctor/load.rb:104)
at RUBY.convert(uri:classloader:/gems/asciidoctor-2.0.18/lib/asciidoctor/convert.rb:78)
Caused by: org.jruby.exceptions.NoMethodError: (NoMethodError) undefined method `gsub' for #
at RUBY.sub_attributes(uri:classloader:/gems/asciidoctor-2.0.18/lib/asciidoctor/substitutors.rb:214)
at RUBY.apply_target_subs(uri:classloader:/gems/asciidoctor-diagram-2.2.8/lib/asciidoctor-diagram/diagram_processor.rb:384)
at RUBY.create_source(uri:classloader:/gems/asciidoctor-diagram-2.2.8/lib/asciidoctor-diagram/diagram_processor.rb:394)
at RUBY.process(uri:classloader:/gems/asciidoctor-diagram-2.2.8/lib/asciidoctor-diagram/diagram_processor.rb:71)
at RUBY.process( Githubissues.
Githubissues is a development platform for aggregating issues.
Observed vs. expected behavior
Attempting to include a Structurizr diagram in an Asciidoc file. Support for this was added to asciidoctor-diagram in 2.2.8 (https://github.com/asciidoctor/asciidoctor-diagram/issues/386).
The
[structurizr]
diagram type is detected, but rendering fails with the following error in the logs: