From: Dave B. <bla...@us...> - 2011-05-31 14:06:50
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml In directory vz-cvs-3.sog:/tmp/cvs-serv12124/src/org/sblim/cimclient/internal/cimxml Modified Files: CIMXMLParserImpl.java Log Message: 3293248 - Support for CIM_ERROR instances within ERROR Index: CIMXMLParserImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMXMLParserImpl.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- CIMXMLParserImpl.java 16 Aug 2010 17:20:50 -0000 1.40 +++ CIMXMLParserImpl.java 31 May 2011 14:06:47 -0000 1.41 @@ -1,7 +1,7 @@ /** * CIMXMLParserImpl.java * - * (C) Copyright IBM Corp. 2005, 2010 + * (C) Copyright IBM Corp. 2005, 2011 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE @@ -47,6 +47,7 @@ * 3023143 2010-07-01 blaschke-oss CIMXMLParserImpl uses # constructor instead of valueOf * 3027479 2010-07-09 blaschke-oss Dead store to local variable * 3027615 2010-07-12 blaschke-oss Use CLASS_ARRAY_T instead of new CIMDataType(CLASS,0) + * 3293248 2011-05-03 blaschke-oss Support for CIM_ERROR instances within ERROR */ package org.sblim.cimclient.internal.cimxml; @@ -2596,9 +2597,10 @@ * * @param pErrorE * @return WBEMException + * @throws CIMXMLParseException */ - public static WBEMException parseERROR(Element pErrorE) { - // <!ELEMENT ERROR EMPTY> + public static WBEMException parseERROR(Element pErrorE) throws CIMXMLParseException { + // <!ELEMENT ERROR (INSTANCE*)> // <!ATTLSIT ERROR %CODE;%DESCRIPTION;> Attr error_codeA = (Attr) searchAttribute(pErrorE, "CODE"); @@ -2616,8 +2618,22 @@ description = error_descriptionA.getNodeValue(); } + Vector<Object> rtnV = new Vector<Object>(); + + // INSTANCE + Element[] instElementA = searchNodes(pErrorE, "INSTANCE"); + if (instElementA != null && instElementA.length > 0) { + for (int i = 0; i < instElementA.length; i++) { + Element instanceE = instElementA[i]; + CIMInstance inst = parseINSTANCE(instanceE); + rtnV.add(inst); + } + } + // throw new CIMException(CIMException.getErrorName(errorCode), // description.substring(description.indexOf(':')+1)); + if (!rtnV.isEmpty()) return new WBEMException(WBEMException.CIM_ERR_FAILED, "ErrorCode:" + + errorCode + " description:" + description, rtnV.toArray(new CIMInstance[0])); return new WBEMException("ErrorCode:" + errorCode + " description:" + description); } |