[
https://issues.apache.org/jira/browse/XERCESJ-1279?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bill Michell updated XERCESJ-1279:
----------------------------------
Attachment: Crash.java
test.xml
A simple bit of Xml together with a simple java application that can be used to
illustrate the problem.
You'll probably need to update the source path in the code to point to the
appropriate files on your file system.
> ClassCastException in SubstitutionGroupHandler.addSubstitutionGroup() during
> Document.normalize()
> -------------------------------------------------------------------------------------------------
>
> Key: XERCESJ-1279
> URL: https://issues.apache.org/jira/browse/XERCESJ-1279
> Project: Xerces2-J
> Issue Type: Bug
> Components: DOM (Level 3 Core)
> Affects Versions: 2.9.1
> Environment: Windows, Sun JRE 1.6.00_03
> Reporter: Bill Michell
> Attachments: ContentComponents.xsd, Crash.java, iCI.xsd, test.xml,
> test.xsd
>
>
> Change 319073 introduced the class SubstitutionGroupHandler$OneSubGroup and
> the Hashtable fSubGroupB
> According to the documentation, the field has the following characteristics:
> // to store substitution group information
> // the key to the hashtable is an element decl, and the value is
> // - a Vector, which contains all elements that has this element as their
> // substitution group affilication
> // - an array of OneSubGroup, which contains its substitution group
> before block.
> Unfortuntately, addSubstitutionGroup() contains the following line:
> subGroup = (Vector)fSubGroupsB.get(subHead);
> This fails with a ClassCastException if the value for the key passed turns
> out to be a OneSubGroup[]
> The following lines of getSubGroupB() appear to ensure that a OneSubGroup[]
> is in the map:
> // Convert to an array
> OneSubGroup[] ret = new OneSubGroup[newGroup.size()];
> for (int i = newGroup.size()-1; i >= 0; i--) {
> ret[i] = (OneSubGroup)newGroup.elementAt(i);
> }
> // Store the potential sub group
> fSubGroupsB.put(element, ret);
>
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
|