  | |  | Issue Comment Edited: (XERCESJ-589) Bug with pattern restriction on long | Issue Comment Edited: (XERCESJ-589) Bug with pattern restriction on long 2007-06-12 - By Michael Glavassevich (JIRA)
[ https://issues.apache.org/jira/browse/XERCESJ-589?page=com.atlassian.jira .plugin.system.issuetabpanels:comment-tabpanel#action_12504083 ]
Michael Glavassevich edited comment on XERCESJ-589 at 6/12/07 8:23 PM: -----------------------------------------------------------------------
The number of recursive calls to matchString() is proportional to the length of the input. Increasing the stack size can be used to avoid the problem, but as Christiaan pointed out the string could be of any length so regardless of how large a stack you specify there will always be an input which is large enough to cause it to overflow.
For folks watching this bug report who wonder why it's has been open for so long without a fix, it's primarily been because none of the current developers know this part of the code particularly well (a lot of it is older than Xerces itself and not well commented; 8+ years) and haven't had the time to learn the details well enough to do the re-design (recursion -> iteration). Likely it will be fixed one day, but probably only in the near future if someone from the community contributes a patch with a description of the changes and some unit tests to help verify it.
was: The number of recursive calls to matchString() is proportional to the length of the input. Increasing the stack size can be used to avoid the problem, but as Christiaan pointed out the string could be of any length so regardless of how large a stack you specify there will always be an input which is large enough that will cause it to overflow.
For folks watching this bug report who wonder why it's has been open so long without a fix, it's primarily been because none of the current developers know this part of the code particularly well (a lot of it is older than Xerces itself and not well commented; 8+ years) and haven't had the time to the learn details well enough to do the re-design (recursion -> iteration). Likely it will be fixed one day, but probably only in the near future if someone from the community contributes a patch with a description of the changes and some unit tests to help verify it.
> Bug with pattern restriction on long strings > -------------------------------------------- > > Key: XERCESJ-589 > URL: https://issues.apache.org/jira/browse/XERCESJ-589 > Project: Xerces2-J > Issue Type: Bug > Components: XML Schema Structures > Affects Versions: 2.3.0 > Environment: Operating System: All > Platform: All > Reporter: Mark Woon > Attachments: test.xml, test.xsd, test.zip > > > There is a bug with applying a pattern restriction on long strings while trying > to validate an XML file against a schema. I'm including an xml file and xsd > file that demonstrates this problem. One character less in <sequence> and the > problem does not occur. > As it is, I'm getting > java.lang.StackOverflowError > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > at > org.apache.xerces.impl.xpath.regex.RegularExpression.matchString(Unknown Source) > ...
-- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
--------------------------------------------------------------------- To unsubscribe, e-mail: j-dev-unsubscribe@(protected) For additional commands, e-mail: j-dev-help@(protected)
|
|
 |