You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2018/06/04 07:15:43 UTC

svn commit: r1832797 - /jmeter/trunk/src/core/org/apache/jmeter/util/XPathUtil.java

Author: pmouawad
Date: Mon Jun  4 07:15:43 2018
New Revision: 1832797

URL: http://svn.apache.org/viewvc?rev=1832797&view=rev
Log:
Bug 60991 - XPath Extractor : Implement XPath 2.0

Fix some SONAR warnings
Bugzilla Id: 60991

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/util/XPathUtil.java

Modified: jmeter/trunk/src/core/org/apache/jmeter/util/XPathUtil.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/util/XPathUtil.java?rev=1832797&r1=1832796&r2=1832797&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/util/XPathUtil.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/util/XPathUtil.java Mon Jun  4 07:15:43 2018
@@ -477,7 +477,7 @@ public class XPathUtil {
                     if(selector != null) {
                         try {
                             selector.getUnderlyingXPathContext().setContextItem(null);
-                        } catch (Exception e) {
+                        } catch (Exception e) { // NOSONAR Ignored on purpose
                             // NOOP
                         }
                     }
@@ -518,18 +518,23 @@ public class XPathUtil {
         return res;
     }
 
+    /**
+     * Compute namespaces for XML
+     * @param xml XML content
+     * @return List of Namespaces
+     * @throws XMLStreamException
+     * @throws FactoryConfigurationError
+     */
     public static List<String[]> getNamespaces(String xml)
             throws XMLStreamException, FactoryConfigurationError{
         List<String[]> res= new ArrayList<>();
         XMLStreamReader reader;
-        if(!xml.equals("")) {
+        if(StringUtils.isNoneEmpty(xml)) {
             reader = XMLInputFactory.newFactory().createXMLStreamReader(new StringReader(xml));
             while (reader.hasNext()) {
                 int event = reader.next();
-                if (XMLStreamConstants.START_ELEMENT == event) {
-                    addToList(reader, res);
-                } else if(XMLStreamConstants.NAMESPACE == event) {
-                    // This almost never happens
+                if (XMLStreamConstants.START_ELEMENT == event ||
+                        XMLStreamConstants.NAMESPACE == event) {
                     addToList(reader, res);
                 }
             }
@@ -542,7 +547,6 @@ public class XPathUtil {
         int namespaceCount = reader.getNamespaceCount(); 
         if (namespaceCount > 0) {
             for (int nsIndex = 0; nsIndex < namespaceCount; nsIndex++) {
-                String[] tmp = {"",""};
                 String nsPrefix = reader.getNamespacePrefix(nsIndex);
                 for(int i = 0;i<res.size();i++) {
                     String prefix = res.get(i)[0];
@@ -553,9 +557,7 @@ public class XPathUtil {
                 }
                 if(!isInList) {
                     String nsId = reader.getNamespaceURI(nsIndex);
-                    tmp[0] = nsPrefix;
-                    tmp[1] = nsId;
-                    res.add(tmp);
+                    res.add(new String[] {nsPrefix, nsId});
                 }
                 isInList=false;
             }