From: Dave B. <bla...@us...> - 2013-10-09 17:48:57
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14064/src/org/sblim/cimclient/internal/cimxml Modified Files: 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.55 retrieving revision 1.56 diff -u -d -r1.55 -r1.56 --- CIMXMLParserImpl.java 9 Oct 2013 17:27:00 -0000 1.55 +++ CIMXMLParserImpl.java 9 Oct 2013 17:48:54 -0000 1.56 @@ -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(); // KEYVALUE @@ -1061,6 +1070,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"); @@ -1178,6 +1188,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!"); @@ -1202,6 +1213,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) @@ -1219,6 +1231,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 @@ -1236,6 +1249,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()); @@ -1251,6 +1265,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"); @@ -1298,6 +1313,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); @@ -1431,6 +1447,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); @@ -1462,6 +1479,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 @@ -1944,6 +1962,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"); @@ -1991,6 +2010,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"); @@ -2035,6 +2055,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; @@ -2168,6 +2189,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 @@ -2200,6 +2222,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 @@ -2360,6 +2383,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"); @@ -2414,6 +2439,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 @@ -2555,6 +2581,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(); @@ -2620,6 +2648,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 |