From: Dave B. <bla...@us...> - 2013-09-25 17:43:27
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv4552/src/org/sblim/cimclient/internal/cimxml Modified Files: Tag: Experimental CIMXMLParserImpl.java Log Message: 2670 NAME attribute not required by DOM parser Index: CIMXMLParserImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMXMLParserImpl.java,v retrieving revision 1.14.2.45 retrieving revision 1.14.2.46 diff -u -d -r1.14.2.45 -r1.14.2.46 --- CIMXMLParserImpl.java 24 Sep 2013 23:08:04 -0000 1.14.2.45 +++ CIMXMLParserImpl.java 25 Sep 2013 17:43:24 -0000 1.14.2.46 @@ -62,6 +62,7 @@ * 2640 2013-05-11 blaschke-oss Multiple CDATA parsing broken in DOM parser * 2668 2013-09-24 blaschke-oss Potential null pointer exception in parseCIM * 2669 2013-09-24 blaschke-oss Potential null pointer exception in parseMESSAGE + * 2670 2013-09-25 blaschke-oss NAME attribute not required by DOM parser */ package org.sblim.cimclient.internal.cimxml; @@ -584,12 +585,14 @@ * * @param pNameSpaceE * @return String + * @throws CIMXMLParseException */ - public static String parseNAMESPACE(Element pNameSpaceE) { + public static String parseNAMESPACE(Element pNameSpaceE) throws CIMXMLParseException { // <!ELEMENT NAMESPACE EMPTY> // <!ATTLIST NAMESPACE %NAME;> Attr namespace_nameA = (Attr) searchAttribute(pNameSpaceE, "NAME"); + if (namespace_nameA == null) throw new CIMXMLParseException("NAME attribute not found!"); String n = namespace_nameA.getValue(); return n; } @@ -648,11 +651,13 @@ * * @param pClassNameE * @return String + * @throws CIMXMLParseException */ - public static String parseClassName(Element pClassNameE) { + public static String parseClassName(Element pClassNameE) throws CIMXMLParseException { // <!ELEMENT CLASSNAME EMPTY> // <!ATTLIST CLASSNAME %NAME;> Attr classname_nameA = (Attr) searchAttribute(pClassNameE, "NAME"); + if (classname_nameA == null) throw new CIMXMLParseException("NAME attribute not found!"); return classname_nameA.getNodeValue(); } @@ -661,8 +666,9 @@ * * @param pClassNameE * @return CIMObjectPath + * @throws CIMXMLParseException */ - public static CIMObjectPath parseCLASSNAME(Element pClassNameE) { + public static CIMObjectPath parseCLASSNAME(Element pClassNameE) throws CIMXMLParseException { return cLocalPathBuilder.build(parseClassName(pClassNameE), null); } @@ -730,6 +736,8 @@ // <!ELEMENT INSTANCENAME (KEYBINDING*|KEYVALUE?|VALUE.REFERNCE?)> // <!ATTLIST INSTANCENAME %CLASSNAME;> Attr instance_classnameA = (Attr) searchAttribute(pInstanceNameE, "CLASSNAME"); + if (instance_classnameA == null) throw new CIMXMLParseException( + "CLASSNAME attribute not found!"); String opClassName = instance_classnameA.getNodeValue(); // KEYBINDING @@ -785,6 +793,7 @@ // <!ATTLIST KEYBINDING %NAME;> Attr keybinding_nameA = (Attr) searchAttribute(pKeyBindingE, "NAME"); + if (keybinding_nameA == null) throw new CIMXMLParseException("NAME attribute not found!"); String propName = keybinding_nameA.getValue(); // CIMProperty prop = new CIMProperty(pName); @@ -1062,6 +1071,7 @@ // <!ATTLIST CLASS %NAME;%SUPERCLASS;> Attr class_nameA = (Attr) searchAttribute(pClassE, "NAME"); + if (class_nameA == null) throw new CIMXMLParseException("NAME attribute not found!"); String name = class_nameA.getNodeValue(); // Attr superclass_nameA = (Attr)searchAttribute(classE, "SUPERCLASS"); @@ -1179,6 +1189,7 @@ // %Propagated;> String name = attribute(pMethodE, "NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); EmbObjHandler embObjHandler = new EmbObjHandler(pMethodE); CIMDataType type = embObjHandler.getType(); if (type.isArray()) throw new CIMXMLParseException("Method's type cannot be Array!"); @@ -1203,6 +1214,7 @@ */ public static CIMParameter<Object> parsePARAMETER(Element pParamE) throws CIMXMLParseException { String name = attribute(pParamE, "NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); EmbObjHandler iEmbObjHandler = new EmbObjHandler(pParamE); // CIMParameter(String name, CIMDataType type, CIMQualifier[] // qualifiers) @@ -1220,6 +1232,7 @@ public static CIMParameter<Object> parsePARAMETERREFERENCE(Element pParamE) throws CIMXMLParseException { String name = attribute(pParamE, "NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); String referenceClass = attribute(pParamE, "REFERENCECLASS"); CIMDataType type = new CIMDataType(referenceClass != null ? referenceClass : ""); // QUALIFIER @@ -1237,6 +1250,7 @@ public static CIMParameter<Object> parsePARAMETERARRAY(Element pParamE) throws CIMXMLParseException { String name = attribute(pParamE, "NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); EmbObjHandler iEmbObjHandler = new EmbObjHandler(pParamE); return new CIMParameter<Object>(name, iEmbObjHandler.getArrayType(), iEmbObjHandler .getQualifiers()); @@ -1252,6 +1266,7 @@ public static CIMParameter<Object> parsePARAMETERREFARRAY(Element pParamE) throws CIMXMLParseException { String name = attribute(pParamE, "NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); String referenceClass = attribute(pParamE, "REFERENCECLASS"); @@ -1299,6 +1314,7 @@ // BB mod CIMInstance inst = new CIMInstance(); String className = attribute(pInstanceE, "CLASSNAME"); + if (className == null) throw new CIMXMLParseException("CLASSNAME attribute not found!"); // QUALIFIER // FIXME: in JSR48 CIMInstance doesn't have qualifiers // CIMQualifier[] qualis = parseQUALIFIERS(pInstanceE); @@ -1432,6 +1448,7 @@ // <!ATTLIST QUALIFIER %NAME;%TYPE;%PROPAGATED;%QUALIFIERFLAVOR;> String name = attribute(pQualifierE, "NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); boolean propagated = MOF.TRUE.equalsIgnoreCase(pQualifierE.getAttribute("PROPAGATED")); // FLAVORS int flavors = parseFLAVORS(pQualifierE); @@ -1463,6 +1480,7 @@ // %QualifierFlavor;> String name = attribute(pQualifierTypeE, "NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); // SCOPES // ebak: there should be only 1 scope node @@ -1945,6 +1963,7 @@ // <!ATTLIST PROPERTY %NAME;%TYPE;%CLASSORIGIN;%PROPAGATED;> Attr property_nameA = (Attr) searchAttribute(pPropertyE, "NAME"); + if (property_nameA == null) throw new CIMXMLParseException("NAME attribute not found!"); String name = property_nameA.getNodeValue(); String classOrigin = pPropertyE.getAttribute("CLASSORIGIN"); @@ -1992,6 +2011,7 @@ // %NAME;%TYPE;%ARRAYSIZE;%CLASSORIGIN;%PROPAGATED;> String name = pPropArrayE.getAttribute("NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); // String valueArraysizeStr = propertyarrayE.getAttribute("ARRAYSIZE"); @@ -2036,6 +2056,7 @@ // %NAME;%REFERENCECLASS;%CLASSORIGIN;%PROPAGATED;> String name = pPropRefE.getAttribute("NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); String classOrigin = pPropRefE.getAttribute("CLASSORIGIN"); if (classOrigin != null && classOrigin.length() == 0) classOrigin = null; @@ -2169,6 +2190,7 @@ // (VALUE|VALUE.REFERENCE|VALUE.ARRAY|VALUE.REFARRAY)?>) // <!ATTLIST PARAMTYPE %NAME;%PARAMTYPE%> String name = attribute(pParamValueE, "NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); // FIXME: ebak: The base implementation didn't contain VALUE.REFARRAY // handling. Why? // ebak: embedded object support, different parsing for VALUE and @@ -2201,6 +2223,7 @@ // %CIMName;> String name = attribute(pParamValueE, "NAME"); + if (name == null) throw new CIMXMLParseException("NAME attribute not found!"); // this can parse VALUE, VALUE.ARRAY and VALUE.REFERENCE TypedValue typedValue = parseSingleValue(pParamValueE, VALUE | VALUEA | VALUEREF); if (typedValue.getType() != null) { return new CIMArgument<Object>(name, typedValue @@ -2361,6 +2384,8 @@ // ((LOCALCLASSPATH|LOCALINSTANCEPATH),PARAMVALUE*)> // <!ATTLIST METHODCALL // %CIMName;> + if (pMethodCallE.getAttribute("NAME") == null) throw new CIMXMLParseException( + "NAME attribute not found!"); CIMRequest request = new CIMRequest(); String methodname = pMethodCallE.getAttribute("CIMName"); @@ -2415,6 +2440,7 @@ CIMRequest request = new CIMRequest(); String methodname = pIMethodCallE.getAttribute("NAME"); // ebak: // CIMName->NAME + if (methodname == null) throw new CIMXMLParseException("NAME attribute not found!"); request.setMethodName(methodname); // METHODCALL @@ -2556,6 +2582,8 @@ public static CIMResponse parseMETHODRESPONSE(Element pMethodResponseE) throws CIMXMLParseException { // <!ELEMENT METHODRESPONSE (ERROR|(RETURNVALUE?,PARAMVALUE*))> + if (pMethodResponseE.getAttribute("NAME") == null) throw new CIMXMLParseException( + "NAME attribute not found!"); CIMResponse response = new CIMResponse(); @@ -2621,6 +2649,8 @@ public static CIMResponse parseIMETHODRESPONSE(Element pIMethodResponseE) throws CIMXMLParseException { // <!ELEMENT IMETHODRESPONSE (ERROR|(IRETURNVALUE?, PARAMVALUE*))> + if (pIMethodResponseE.getAttribute("NAME") == null) throw new CIMXMLParseException( + "NAME attribute not found!"); CIMResponse response = new CIMResponse(); // ERROR |