asciidocfx / AsciidocFX

Asciidoc Editor and Toolchain written with JavaFX 21 (Build PDF, Epub, Mobi and HTML books, documents and slides)
http://www.asciidocfx.com/
Apache License 2.0
1.89k stars 297 forks source link

Unable to save PDF file #478

Closed merravid closed 3 years ago

merravid commented 4 years ago

When attempting to save to PDF, I get the following exception in the log file. The resulting PDF file is a 15 byte file which obviously does not open.


java.lang.IllegalArgumentException: newPosition < 0: (9 < 0)
    at java.base/java.nio.Buffer.createPositionException(Buffer.java:318)
    at java.base/java.nio.Buffer.position(Buffer.java:293)
    at java.base/java.nio.CharBuffer.position(CharBuffer.java:1086)
    at java.base/java.nio.CharBuffer.position(CharBuffer.java:262)
    at java.base/sun.nio.cs.UTF_8.updatePositions(UTF_8.java:79)
    at java.base/sun.nio.cs.UTF_8$Encoder.encodeArrayLoop(UTF_8.java:509)
    at java.base/sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:564)
    at java.base/java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:578)
    at morfologik.stemming.BufferUtils.charsToBytes(BufferUtils.java:161)
    at morfologik.speller.Speller.charSequenceToBytes(Speller.java:189)
    at morfologik.speller.Speller.isInDictionary(Speller.java:253)
    at morfologik.speller.Speller.replaceRunOnWordCandidates(Speller.java:332)
    at morfologik.speller.Speller.replaceRunOnWords(Speller.java:360)
    at com.kodedu.spell.dictionary.LanguageSpeller.findSuggestions(LanguageSpeller.java:69)
    at com.kodedu.spell.dictionary.DictionaryService.lambda$processTokens$2(DictionaryService.java:88)
    at java.base/java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:441)
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
    at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:274)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at com.kodedu.spell.dictionary.DictionaryService.processTokens(DictionaryService.java:92)
    at com.kodedu.controller.ApplicationController.lambda$processTokens$180(ApplicationController.java:2462)
    at com.kodedu.service.ThreadService$1.call(ThreadService.java:48)
    at javafx.graphics/javafx.concurrent.Task$TaskCallable.call(Task.java:1425)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1406)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)```
merravid commented 4 years ago

File attached (remove .txt extension)

doc.adoc.txt

pablofradua commented 3 years ago

It seems there are some blockIds which are duplicated:

Removing the duplicates enables the conversion to PDF.

rahmanusta commented 3 years ago

Exactly, block ids should be unique.