Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Could not parse template file with hyperlinks #29

Closed
epteflo opened this issue Sep 13, 2019 · 2 comments · Fixed by #30
Closed

Could not parse template file with hyperlinks #29

epteflo opened this issue Sep 13, 2019 · 2 comments · Fixed by #30
Assignees
Labels
bug Something isn't working

Comments

@epteflo
Copy link

epteflo commented Sep 13, 2019

A following exception dropped by stencil at getAllFragment call:

io.github.erdos.stencil.exceptions.ParsingException: Could not parse template file!
        at io.github.erdos.stencil.exceptions.ParsingException.wrapping(ParsingException.java:15) ~[stencil-core-0.3.3.jar:?]
        at io.github.erdos.stencil.impl.NativeTemplateFactory.prepareTemplateImpl(NativeTemplateFactory.java:98) ~[stencil-core-0.3.3.jar:?]
        at io.github.erdos.stencil.impl.NativeTemplateFactory.prepareTemplateFile(NativeTemplateFactory.java:33) ~[stencil-core-0.3.3.jar:?]
        at io.github.erdos.stencil.API.prepare(API.java:18) ~[stencil-core-0.3.3.jar:?]
        at io.github.erdos.stencil.Process.prepareTemplateFile(Process.java:129) ~[stencil-0.3.3b.jar:?]
        at hu.dbx.hammy.processor.generate.StencilProcessManager.getAllFragmentNames(StencilProcessManager.java:95) ~[hammy-core-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.hammy.processor.templatehandling.tasks.PersistDataHandlerTask.addMissingRelations(PersistDataHandlerTask.java:111) ~[hammy-core-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.hammy.processor.templatehandling.tasks.PersistDataHandlerTask.executeTask(PersistDataHandlerTask.java:73) ~[hammy-core-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.tasks.LoggingBaseTask.run(LoggingBaseTask.java:21) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.hammy.processor.templatehandling.tasks.CreateOrUpdateTemplateVersionTask.run(CreateOrUpdateTemplateVersionTask.java:66) ~[hammy-core-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.hammy.processor.templatehandling.tasks.TemplateValidatorTask.run(TemplateValidatorTask.java:293) ~[hammy-core-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.hammy.tasks.SuspendMessageTask.run(SuspendMessageTask.java:57) ~[hammy-core-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.tasks.LoggingBaseTask.run(LoggingBaseTask.java:28) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.tasks.FilterItemTask.run(FilterItemTask.java:36) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.tasks.ItemManagerTask.run(ItemManagerTask.java:56) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.tasks.EventDistributorTask.run(EventDistributorTask.java:32) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChainTransactionHelper.runChainInNewTransaction(TaskChainTransactionHelper.java:11) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChainTransactionHelper$$FastClassBySpringCGLIB$$2f2e0b14.invoke(<generated>) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746) ~[spring-aop-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) ~[spring-tx-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) ~[spring-aop-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at hu.dbx.chaingun.util.taskchain.TaskChainTransactionHelper$$EnhancerBySpringCGLIB$$47f37b49.runChainInNewTransaction(<generated>) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.tasks.BaseExceptionHandlerTask.run(BaseExceptionHandlerTask.java:43) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.tasks.ExceptionHandlerTask.run(ExceptionHandlerTask.java:25) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.logging.MDCHelper.withContext(MDCHelper.java:39) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.tasks.LoggingMDCTask.run(LoggingMDCTask.java:25) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChain.run(TaskChain.java:114) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChainTransactionHelper.runChainInNewTransaction(TaskChainTransactionHelper.java:11) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at hu.dbx.chaingun.util.taskchain.TaskChainTransactionHelper$$FastClassBySpringCGLIB$$2f2e0b14.invoke(<generated>) ~[chaingun-3.1.0-SNAPSHOT.jar:?]
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746) ~[spring-aop-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) ~[spring-tx-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.0.8.RELEASE.jar:5.0.8.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.8.RELEASE.jar:5.0.8.RELEASE]
...
Caused by: com.ctc.wstx.exc.WstxIOException: Stream closed
        at com.ctc.wstx.sr.StreamScanner.constructFromIOE(StreamScanner.java:637) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1057) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.StreamScanner.parseLocalName2(StreamScanner.java:1867) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.StreamScanner.parseLocalName(StreamScanner.java:1827) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3077) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:3028) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2904) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1117) ~[woodstox-core-5.1.0.jar:5.1.0]
        at clojure.data.xml.jvm.parse$pull_seq$fn__1141.invoke(parse.clj:78) ~[?:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:56) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.seq(RT.java:528) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invokeStatic(core.clj:137) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invoke(core.clj:137) ~[clojure-1.9.0.jar:?]
        at clojure.data.xml.tree$seq_tree$fn__974.invoke(tree.clj:39) ~[?:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.first(LazySeq.java:71) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.first(RT.java:685) ~[clojure-1.9.0.jar:?]
        at clojure.core$first__5106.invokeStatic(core.clj:55) ~[clojure-1.9.0.jar:?]
        at clojure.core$first__5106.invoke(core.clj:55) ~[clojure-1.9.0.jar:?]
        at clojure.data.xml.tree$seq_tree$fn__974$fn__982.invoke(tree.clj:46) ~[?:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.seq(RT.java:528) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invokeStatic(core.clj:137) ~[clojure-1.9.0.jar:?]
        at clojure.core$filter$fn__5614.invoke(core.clj:2801) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.seq(RT.java:528) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invokeStatic(core.clj:137) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invoke(core.clj:137) ~[clojure-1.9.0.jar:?]
        at stencil.model$parse_relation$iter__2769__2773$fn__2774.invoke(model.clj:71) ~[?:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0.jar:?]
        at clojure.lang.Cons.next(Cons.java:39) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.next(RT.java:706) ~[clojure-1.9.0.jar:?]
        at clojure.core$next__5108.invokeStatic(core.clj:64) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7852.invokeStatic(protocols.clj:169) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7852.invoke(protocols.clj:124) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7807$G__7802__7816.invoke(protocols.clj:19) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7835.invokeStatic(protocols.clj:75) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7835.invoke(protocols.clj:75) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7781$G__7776__7794.invoke(protocols.clj:13) ~[clojure-1.9.0.jar:?]
        at clojure.core$reduce.invokeStatic(core.clj:6748) ~[clojure-1.9.0.jar:?]
        at clojure.core$into.invokeStatic(core.clj:6815) ~[clojure-1.9.0.jar:?]
        at clojure.core$into.invoke(core.clj:6807) ~[clojure-1.9.0.jar:?]
        at stencil.model$parse_relation.invokeStatic(model.clj:70) ~[?:?]
        at stencil.model$parse_relation.invoke(model.clj:65) ~[?:?]
        at stencil.model$load_template_model$__GT_rels__2811.invoke(model.clj:115) ~[?:?]
        at stencil.model$load_template_model.invokeStatic(model.clj:117) ~[?:?]
        at stencil.model$load_template_model.invoke(model.clj:106) ~[?:?]
        at stencil.process$prepare_template.invokeStatic(process.clj:34) ~[?:?]
        at stencil.process$prepare_template.invoke(process.clj:29) ~[?:?]
        at clojure.lang.Var.invoke(Var.java:381) ~[clojure-1.9.0.jar:?]
        at io.github.erdos.stencil.impl.NativeTemplateFactory.prepareTemplateImpl(NativeTemplateFactory.java:94) ~[stencil-core-0.3.3.jar:?]
        ... 129 more
Caused by: java.io.IOException: Stream closed
        at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170) ~[?:1.8.0_222]
        at java.io.BufferedInputStream.read(BufferedInputStream.java:336) ~[?:1.8.0_222]
        at com.ctc.wstx.io.BaseReader.readBytes(BaseReader.java:155) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:369) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:112) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:89) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1054) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.StreamScanner.parseLocalName2(StreamScanner.java:1867) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.StreamScanner.parseLocalName(StreamScanner.java:1827) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3077) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:3028) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2904) ~[woodstox-core-5.1.0.jar:5.1.0]
        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1117) ~[woodstox-core-5.1.0.jar:5.1.0]
        at clojure.data.xml.jvm.parse$pull_seq$fn__1141.invoke(parse.clj:78) ~[?:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:56) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.seq(RT.java:528) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invokeStatic(core.clj:137) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invoke(core.clj:137) ~[clojure-1.9.0.jar:?]
        at clojure.data.xml.tree$seq_tree$fn__974.invoke(tree.clj:39) ~[?:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.first(LazySeq.java:71) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.first(RT.java:685) ~[clojure-1.9.0.jar:?]
        at clojure.core$first__5106.invokeStatic(core.clj:55) ~[clojure-1.9.0.jar:?]
        at clojure.core$first__5106.invoke(core.clj:55) ~[clojure-1.9.0.jar:?]
        at clojure.data.xml.tree$seq_tree$fn__974$fn__982.invoke(tree.clj:46) ~[?:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.seq(RT.java:528) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invokeStatic(core.clj:137) ~[clojure-1.9.0.jar:?]
        at clojure.core$filter$fn__5614.invoke(core.clj:2801) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.seq(RT.java:528) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invokeStatic(core.clj:137) ~[clojure-1.9.0.jar:?]
        at clojure.core$seq__5124.invoke(core.clj:137) ~[clojure-1.9.0.jar:?]
        at stencil.model$parse_relation$iter__2769__2773$fn__2774.invoke(model.clj:71) ~[?:?]
        at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0.jar:?]
        at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0.jar:?]
        at clojure.lang.Cons.next(Cons.java:39) ~[clojure-1.9.0.jar:?]
        at clojure.lang.RT.next(RT.java:706) ~[clojure-1.9.0.jar:?]
        at clojure.core$next__5108.invokeStatic(core.clj:64) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7852.invokeStatic(protocols.clj:169) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7852.invoke(protocols.clj:124) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7807$G__7802__7816.invoke(protocols.clj:19) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7835.invokeStatic(protocols.clj:75) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7835.invoke(protocols.clj:75) ~[clojure-1.9.0.jar:?]
        at clojure.core.protocols$fn__7781$G__7776__7794.invoke(protocols.clj:13) ~[clojure-1.9.0.jar:?]
        at clojure.core$reduce.invokeStatic(core.clj:6748) ~[clojure-1.9.0.jar:?]
        at clojure.core$into.invokeStatic(core.clj:6815) ~[clojure-1.9.0.jar:?]
        at clojure.core$into.invoke(core.clj:6807) ~[clojure-1.9.0.jar:?]
        at stencil.model$parse_relation.invokeStatic(model.clj:70) ~[?:?]
        at stencil.model$parse_relation.invoke(model.clj:65) ~[?:?]
        at stencil.model$load_template_model$__GT_rels__2811.invoke(model.clj:115) ~[?:?]
        at stencil.model$load_template_model.invokeStatic(model.clj:117) ~[?:?]
        at stencil.model$load_template_model.invoke(model.clj:106) ~[?:?]
        at stencil.process$prepare_template.invokeStatic(process.clj:34) ~[?:?]
        at stencil.process$prepare_template.invoke(process.clj:29) ~[?:?]
        at clojure.lang.Var.invoke(Var.java:381) ~[clojure-1.9.0.jar:?]
        at io.github.erdos.stencil.impl.NativeTemplateFactory.prepareTemplateImpl(NativeTemplateFactory.java:94) ~[stencil-core-0.3.3.jar:?]
        ... 129 more

The following piece of code is able to reproduce the bug:

package hu.dbx.hammy.processor.generate;

import io.github.erdos.stencil.PreparedTemplate;
import io.github.erdos.stencil.Process;
import io.github.erdos.stencil.ProcessFactory;
import org.jodconverter.office.LocalOfficeManager;
import org.junit.Test;

import java.io.File;
import java.util.Arrays;
import java.util.Set;

public class StencilProcessManagerTest {

    @Test
    public void getAllFragmentNames() throws Exception {
        LocalOfficeManager manager = LocalOfficeManager.builder()
                .portNumbers(portArray(2002, 2002))
                .officeHome("/opt/libreoffice6.0").build();
        Process process = ProcessFactory.fromOfficeManager(manager);
        process.start();

        String fileName = "/home/developer/Downloads/x.docx";
        File file = new File(fileName);
        PreparedTemplate preparedTemplate = process.prepareTemplateFile(file);
        Set<String> allFragmentNames = preparedTemplate.getVariables().getAllFragmentNames();
        System.out.println(allFragmentNames);
    }

    private int[] portArray(int portRangeFrom, int portRangeTo) {
        int[] ports = new int[portRangeTo - portRangeFrom +1];
        Arrays.setAll(ports, i -> portRangeFrom + i);
        return ports;
    }

}

The bug seems to depend on the size of the file, but I am not sure about it.
I attached a docx file using it the bug is reproducable.
teszt.docx

@erdos erdos added the bug Something isn't working label Sep 13, 2019
@erdos erdos self-assigned this Sep 13, 2019
@erdos erdos mentioned this issue Sep 13, 2019
@erdos erdos closed this as completed in #30 Sep 13, 2019
@erdos erdos changed the title Could not parse template file Could not parse template file with hyperlinks Sep 13, 2019
@erdos
Copy link
Owner

erdos commented Sep 13, 2019

The problem was with the hyperlinks in the template document. Stencil was looking for hyperlink targets in the docx file for copying. Added extra logic to handle hyperlinks.

Thank you for reporting the issue.

The just released version 0.3.4 contains the fix. It works for me with the template file. Should anything come up, feel free to open an other issue.

@erdos
Copy link
Owner

erdos commented Sep 17, 2019

Also found root cause of this specific exception. Woodstox uses a different buffering for parsing input streams and the stream was already closed when parsing the relations file.

Solved in 0.3.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants