Converting Markdown with Html to xliff2 (XLIFF2FilterWriter) results in error
When using the
net.sf.okapi.filters.xliff2.XLIFF2FilterWriter &
net.sf.okapi.filters.markdown.MarkdownFilter
to convert a md string with html tags, such as
# Markdown content
<div> More text </div>
I get a
java.lang.NullPointerException: Cannot invoke "net.sf.okapi.common.resource.ITextUnit.getSource()" because "parentTextUnit" is null
at net.sf.okapi.filters.xliff2.XLIFF2FilterWriter.overWriteTarget(XLIFF2FilterWriter.java:215)
at net.sf.okapi.filters.xliff2.XLIFF2FilterWriter.processEndSubfilter(XLIFF2FilterWriter.java:196)
at net.sf.okapi.filters.xliff2.XLIFF2FilterWriter.handleEvent(XLIFF2FilterWriter.java:257)
I've created a example to reproduce the issue as a test added to net.sf.okapi.filters.xliff2.Xliff2FilterWriterTest
( adding dependency on okapi-filter-markdown to the module )
@Test
public void testWriteMarkdownWithHtmlAsXliff2() throws Exception {
MarkdownFilter filter = new net.sf.okapi.filters.markdown.MarkdownFilter();
RawDocument rd = new RawDocument(new ByteArrayInputStream("# Markdown content \n <div> Inside the tag. </div>".getBytes()), "UTF-8", LocaleId.ENGLISH);
rd.setTargetLocale(LocaleId.ENGLISH);
List<Event> events = FilterTestDriver.getEvents(filter, rd, null);
ByteArrayOutputStream out = new ByteArrayOutputStream();
try (IFilterWriter w = new XLIFF2FilterWriter(new Parameters(), filter.getEncoderManager())){
w.setOptions(LocaleId.FRENCH, "UTF-8");
w.getParameters().setBoolean(XLIFFWriterParameters.COPYSOURCE, true);
w.setOutput(out);
events.forEach(w::handleEvent);
}
}
I have spent a few days trying to adjust the settings of the writer, the filter & the subfilter without any luck.
I've noticed the parentTextUnit is set to null here
net.sf.okapi.common.filters.AbstractSubFilter#setStartSubfilter
@Override
public void setStartSubfilter(StartSubfilter startSubfilter) {
this.startSubFilter = startSubfilter;
// parentTexUnit could be null, but that's ok
this.startSubFilter.setParentTextUnit(parentTexUnit);
}
Witch causes the nullpointerexception in XLIFF2FilterWriter .
It started looking to me as a potential bug, not just my bad config, so I decided to report it.
If you can lend any help to my resolution of this issue, it would be greatly apreciated.
Thank you.