IDML and OpenXML filters: the maxAttributeSize custom parameter is not used for configuring the XML input factory

Issue #1194 resolved
Denis Konovalyenko created an issue

net.sf.okapi.common.filters.FilterConfigurationMapper#createFilter reloads custom filter parameters but the maxAttributeSize is not used for the XML input factory configuration. Thus, the following error may occur if the maximum attribute size exceeds the default limit (4194304):

Caused by: javax.xml.stream.XMLStreamException: Maximum attribute size limit (4194304) exceeded
    at com.ctc.wstx.sr.StreamScanner.constructLimitViolation(StreamScanner.java:2479)
    at com.ctc.wstx.sr.StreamScanner.verifyLimit(StreamScanner.java:2472)
    at com.ctc.wstx.sr.BasicStreamReader._checkAttributeLimit(BasicStreamReader.java:2058)
    at com.ctc.wstx.sr.BasicStreamReader.parseAttrValue(BasicStreamReader.java:2038)
    at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3153)
    at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:3050)
    at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2928)
    at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1122)
    at com.ctc.wstx.evt.WstxEventReader.nextEvent(WstxEventReader.java:283)
    at net.sf.okapi.filters.openxml.PrioritisedXMLEventReader.nextEvent(PrioritisedXMLEventReader.java:57)
    at net.sf.okapi.filters.openxml.SkippableElements$Default.skip(SkippableElements.java:131)
    at net.sf.okapi.filters.openxml.SkippableElements$Inline.skip(SkippableElements.java:168)
    at net.sf.okapi.filters.openxml.RunSkippableElements.skip(RunSkippableElements.java:76)
    at net.sf.okapi.filters.openxml.RunParser.parseSkippableElements(RunParser.java:430)
    at net.sf.okapi.filters.openxml.RunParser.startRunParsing(RunParser.java:197)
    at net.sf.okapi.filters.openxml.RunParser.parse(RunParser.java:166)
    at net.sf.okapi.filters.openxml.BlockParser.processRun(BlockParser.java:321)
    at net.sf.okapi.filters.openxml.BlockParser.parse(BlockParser.java:239)
    at net.sf.okapi.filters.openxml.StyledTextPart.process(StyledTextPart.java:278)
    at net.sf.okapi.filters.openxml.StyledTextPart.open(StyledTextPart.java:234)
    at net.sf.okapi.filters.openxml.StyledTextPart.open(StyledTextPart.java:128)
    at net.sf.okapi.filters.openxml.OpenXMLFilter.nextInDocument(OpenXMLFilter.java:447)
    at net.sf.okapi.filters.openxml.OpenXMLFilter.next(OpenXMLFilter.java:254)

Comments (3)

  1. Di Hu

    Hi I also see this error, may I ask what is this “maximum attribute size“? I’m not able to get the file that triggered the issue, but would like to create a file that could reproduce this error. Thanks!

  2. Denis Konovalyenko reporter

    Di Hu, the “maximum attribute size” is the “maximum length of individual attribute values (in characters)” according to com.ctc.wstx.api.WstxInputProperties#P_MAX_ATTRIBUTE_SIZE. So, basically, you should compose a document with more than the default limit of 4194304 characters in an attribute value. Even simpler, you may specify the maxAttributeSize parameter as “1” and use the filter - that should trigger the error for almost any document, as far as I can guess…

  3. Log in to comment