Author: mukulg
Date: Sun May 1 23:29:22 2011
New Revision: 1098441
URL: http://svn.apache.org/viewvc?rev=1098441&view=rev
Log:
solving a potential null pointer exception.
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertionXPath2ValueImpl.java
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertionXPath2ValueImpl.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertionXPath2ValueImpl.java?rev=1098441&r1=1098440&r2=1098441&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertionXPath2ValueImpl.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertionXPath2ValueImpl.java
Sun May 1 23:29:22 2011
@@ -173,7 +173,7 @@ public class XSAssertionXPath2ValueImpl
XSObjectList memberTypes = itemType.getMemberTypes();
if (memberTypes.getLength() > 0) {
// the list's item type has variety 'union'
- XSSimpleTypeDefinition actualListItemType =
getActualListItemTypeForVarietyUnion(memberTypes, listStrValue);
+ XSSimpleTypeDefinition actualListItemType =
getActualXDMItemTypeForSTVarietyUnion(memberTypes, listStrValue);
// set a schema 'typed value' to variable $value
setXDMTypedValueOf$value(rootNodeOfAssertTree, listStrValue,
actualListItemType, null, false, xpath2DynamicContext);
}
@@ -219,7 +219,7 @@ public class XSAssertionXPath2ValueImpl
// itemType of xs:list has variety 'union'. here list items may
have different types which are determined below.
while (values.hasMoreTokens()) {
String itemValue = values.nextToken();
- XSSimpleTypeDefinition listItemTypeForUnion =
getActualListItemTypeForVarietyUnion(memberTypes, itemValue);
+ XSSimpleTypeDefinition listItemTypeForUnion =
getActualXDMItemTypeForSTVarietyUnion(memberTypes, itemValue);
xdmItemList.add(SchemaTypeValueFactory.newSchemaTypeValue(listItemTypeForUnion.getBuiltInKind(),
itemValue));
}
}
@@ -236,9 +236,10 @@ public class XSAssertionXPath2ValueImpl
}
else if (complexTypeSimplContentType.getVariety() ==
XSSimpleTypeDefinition.VARIETY_UNION) {
// simple content type has variety xs:union
- XSSimpleTypeDefinition simpleContentTypeForUnion =
getActualListItemTypeForVarietyUnion(complexTypeSimplContentType.getMemberTypes(),
value);
- xpath2DynamicContext.set_variable(new
org.eclipse.wst.xml.xpath2.processor.internal.types.QName("value"),
-
SchemaTypeValueFactory.newSchemaTypeValue(simpleContentTypeForUnion.getBuiltInKind(),
value));
+ XSSimpleTypeDefinition simpleContentTypeForUnion =
getActualXDMItemTypeForSTVarietyUnion(complexTypeSimplContentType.getMemberTypes(),
value);
+ if (simpleContentTypeForUnion != null) {
+ xpath2DynamicContext.set_variable(new
org.eclipse.wst.xml.xpath2.processor.internal.types.QName("value"),
SchemaTypeValueFactory.newSchemaTypeValue(simpleContentTypeForUnion.getBuiltInKind(),
value));
+ }
}
else {
// simple content type has variety atomic
@@ -280,25 +281,25 @@ public class XSAssertionXPath2ValueImpl
/*
- * Find the actual schema type of "list item" instance if the "item type"
of list has variety union.
+ * Find the actual schema type of XDM item instance, if source schema type
is simpleType with variety union.
*/
- private XSSimpleTypeDefinition
getActualListItemTypeForVarietyUnion(XSObjectList memberTypes, String
listItemStrValue) {
+ private XSSimpleTypeDefinition
getActualXDMItemTypeForSTVarietyUnion(XSObjectList memberTypes, String
xdmItemStrValue) {
- XSSimpleTypeDefinition listItemType = null;
+ XSSimpleTypeDefinition xdmItemType = null;
// iterate the member types of union in order, to find that which
schema type can successfully validate an atomic value first
final int memberTypesLength = memberTypes.getLength();
for (int memTypeIdx = 0; memTypeIdx < memberTypesLength; memTypeIdx++)
{
XSSimpleType memSimpleType = (XSSimpleType)
memberTypes.item(memTypeIdx);
- if (XSTypeHelper.isValueValidForASimpleType(listItemStrValue,
memSimpleType)) {
+ if (XSTypeHelper.isValueValidForASimpleType(xdmItemStrValue,
memSimpleType)) {
// no more memberTypes need to be checked
- listItemType = memSimpleType;
+ xdmItemType = memSimpleType;
break;
}
}
- return listItemType;
+ return xdmItemType;
- } // getActualListItemTypeForVarietyUnion
+ } // getActualXDMItemTypeForSTVarietyUnion
} // class XSAssertionXPath2ValueImpl
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]