IDML: Merging empty target segment results in exception

Issue #629 resolved
David Meikle created an issue

Merging a translation kit with an empty target segment results in an "Error adding events to sub document writer" as the XMLEvents result in an unopened tag.

Comments (14)

  1. Chase Tingley

    Hi @dmeikle, can you post a stacktrace and (if possible) email me a sample source file offline that shows the problem? I tried reproducing this with a couple of IDML files I had handy, but it looks like the problem may depend on the document structure.

  2. David Meikle

    Hi @tingley, let me dig them out. I did a quick hack to workaround the issue, as we had to turn around the files quickly, and was planning to come back to it - but suspect you will be far quicker than me on this one.

  3. Chase Tingley

    Weird, I can reproduce this with some effort in Rainbow, but not in tikal, using the same filter/xliff options.

    Anyways, the underlying exception (which is not displayed in Rainbow) is:

    javax.xml.stream.XMLStreamException: No open start element, when trying to write end element
        at com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1537)
        at com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1566)
        at com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:648)
        at com.ctc.wstx.sw.BaseNsStreamWriter.writeEndElement(BaseNsStreamWriter.java:280)
        at org.codehaus.stax2.ri.Stax2EventWriterImpl.add(Stax2EventWriterImpl.java:70)
        at net.sf.okapi.filters.idml.SubDocumentWriter.addEvents(SubDocumentWriter.java:209)
        at net.sf.okapi.filters.idml.SubDocumentWriter.handleEndDocumentEvent(SubDocumentWriter.java:197)
        at net.sf.okapi.filters.idml.SubDocumentWriter.handleEvent(SubDocumentWriter.java:114)
        at net.sf.okapi.filters.idml.IDMLFilterWriter.processEndSubDocument(IDMLFilterWriter.java:317)
        at net.sf.okapi.filters.idml.IDMLFilterWriter.handleEvent(IDMLFilterWriter.java:160)
        at net.sf.okapi.steps.rainbowkit.postprocess.Merger.processUntilTextUnit(Merger.java:441)
        at net.sf.okapi.steps.rainbowkit.postprocess.Merger.processTextUnit(Merger.java:262)
        at net.sf.okapi.steps.rainbowkit.postprocess.Merger.handleEvent(Merger.java:111)
    
  4. Denis Konovalyenko

    Devesh, thank you for your confirmation! Would it be possible for you to attach a document that causes this error?

  5. Denis Konovalyenko

    Thank you for sharing the document! I will attach it to the issue.

    Below is a bit more verbose stack trace:

    net.sf.okapi.common.exceptions.OkapiIOException: Error adding events to sub document writer
    
        at net.sf.okapi.filters.idml.SubDocumentWriter.handleEndDocumentEvent(SubDocumentWriter.java:205)
        at net.sf.okapi.filters.idml.SubDocumentWriter.handleEvent(SubDocumentWriter.java:120)
        at net.sf.okapi.filters.idml.IDMLFilterWriter.processEndSubDocument(IDMLFilterWriter.java:340)
        at net.sf.okapi.filters.idml.IDMLFilterWriter.handleEvent(IDMLFilterWriter.java:169)
        at net.sf.okapi.steps.rainbowkit.postprocess.Merger.processUntilTextUnit(Merger.java:289)
        at net.sf.okapi.steps.rainbowkit.postprocess.Merger.processTextUnit(Merger.java:245)
        at net.sf.okapi.steps.rainbowkit.postprocess.Merger.handleEvent(Merger.java:97)
        at net.sf.okapi.steps.rainbowkit.postprocess.MergingStep.handleEvent(MergingStep.java:84)
        at net.sf.okapi.common.pipeline.Pipeline.execute(Pipeline.java:117)
        at net.sf.okapi.common.pipeline.Pipeline.process(Pipeline.java:227)
        at net.sf.okapi.common.pipeline.Pipeline.process(Pipeline.java:199)
        at net.sf.okapi.common.pipelinedriver.PipelineDriver.processBatch(PipelineDriver.java:182)
    ...
    Caused by: javax.xml.stream.XMLStreamException: No open start element, when trying to write end element
        at com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1589)
        at com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1618)
        at com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:658)
        at com.ctc.wstx.sw.BaseNsStreamWriter.writeEndElement(BaseNsStreamWriter.java:285)
        at org.codehaus.stax2.ri.Stax2EventWriterImpl.add(Stax2EventWriterImpl.java:71)
        at net.sf.okapi.filters.idml.SubDocumentWriter.addEvents(SubDocumentWriter.java:211)
        at net.sf.okapi.filters.idml.SubDocumentWriter.handleEndDocumentEvent(SubDocumentWriter.java:203)
    

  6. Log in to comment