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 2017/09/05 11:18:13 UTC

svn commit: r1807339 - /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java

Author: pmouawad
Date: Tue Sep  5 11:18:12 2017
New Revision: 1807339

URL: http://svn.apache.org/viewvc?rev=1807339&view=rev
Log:
Avoid NPE

Modified:
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?rev=1807339&r1=1807338&r2=1807339&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java Tue Sep  5 11:18:12 2017
@@ -985,23 +985,25 @@ public class ProxyControl extends Generi
         variables.addParameter("T", Long.toString(deltaT)); // $NON-NLS-1$
         ValueReplacer replacer = new ValueReplacer(variables);
         JMeterTreeNode mySelf = model.getNodeOf(this);
-        Enumeration<JMeterTreeNode> children = mySelf.children();
-        while (children.hasMoreElements()) {
-            JMeterTreeNode templateNode = children.nextElement();
-            if (templateNode.isEnabled()) {
-                TestElement template = templateNode.getTestElement();
-                if (template instanceof Timer) {
-                    TestElement timer = (TestElement) template.clone();
-                    try {
-                        timer.setComment("Recorded:"+Long.toString(deltaT)+"ms");
-                        replacer.undoReverseReplace(timer);
-                        model.addComponent(timer, node);
-                    } catch (InvalidVariableException
-                            | IllegalUserActionException e) {
-                        // Not 100% sure, but I believe this can't happen, so
-                        // I'll log and throw an error:
-                        log.error("Program error", e);
-                        throw new Error(e);
+        if(mySelf != null) {
+            Enumeration<JMeterTreeNode> children = mySelf.children();
+            while (children.hasMoreElements()) {
+                JMeterTreeNode templateNode = children.nextElement();
+                if (templateNode.isEnabled()) {
+                    TestElement template = templateNode.getTestElement();
+                    if (template instanceof Timer) {
+                        TestElement timer = (TestElement) template.clone();
+                        try {
+                            timer.setComment("Recorded:"+Long.toString(deltaT)+"ms");
+                            replacer.undoReverseReplace(timer);
+                            model.addComponent(timer, node);
+                        } catch (InvalidVariableException
+                                | IllegalUserActionException e) {
+                            // Not 100% sure, but I believe this can't happen, so
+                            // I'll log and throw an error:
+                            log.error("Program error adding timers", e);
+                            throw new Error(e);
+                        }
                     }
                 }
             }
@@ -1088,25 +1090,27 @@ public class ProxyControl extends Generi
         LinkedList<TestElement> elements = new LinkedList<>();
 
         // Look for elements directly within the HTTP proxy:
-        Enumeration<?> kids = treeModel.getNodeOf(this).children();
-        while (kids.hasMoreElements()) {
-            JMeterTreeNode subNode = (JMeterTreeNode) kids.nextElement();
-            if (subNode.isEnabled()) {
-                TestElement element = (TestElement) subNode.getUserObject();
-                if (myClass.isInstance(element)) {
-                    if (ascending) {
-                        elements.addFirst(element);
-                    } else {
-                        elements.add(element);
+        JMeterTreeNode node = treeModel.getNodeOf(this);
+        if(node != null) {
+            Enumeration<?> kids = node.children();
+            while (kids.hasMoreElements()) {
+                JMeterTreeNode subNode = (JMeterTreeNode) kids.nextElement();
+                if (subNode.isEnabled()) {
+                    TestElement element = (TestElement) subNode.getUserObject();
+                    if (myClass.isInstance(element)) {
+                        if (ascending) {
+                            elements.addFirst(element);
+                        } else {
+                            elements.add(element);
+                        }
                     }
                 }
             }
         }
-
         // Look for arguments elements in the target controller or higher up:
         for (JMeterTreeNode controller = myTarget; controller != null; controller = (JMeterTreeNode) controller
                 .getParent()) {
-            kids = controller.children();
+            Enumeration<?> kids = controller.children();
             while (kids.hasMoreElements()) {
                 JMeterTreeNode subNode = (JMeterTreeNode) kids.nextElement();
                 if (subNode.isEnabled()) {
@@ -1360,13 +1364,15 @@ public class ProxyControl extends Generi
     private void notifySampleListeners(SampleEvent event) {
         JMeterTreeModel treeModel = getJmeterTreeModel();
         JMeterTreeNode myNode = treeModel.getNodeOf(this);
-        Enumeration<JMeterTreeNode> kids = myNode.children();
-        while (kids.hasMoreElements()) {
-            JMeterTreeNode subNode = kids.nextElement();
-            if (subNode.isEnabled()) {
-                TestElement testElement = subNode.getTestElement();
-                if (testElement instanceof SampleListener) {
-                    ((SampleListener) testElement).sampleOccurred(event);
+        if(myNode != null) {
+            Enumeration<JMeterTreeNode> kids = myNode.children();
+            while (kids.hasMoreElements()) {
+                JMeterTreeNode subNode = kids.nextElement();
+                if (subNode.isEnabled()) {
+                    TestElement testElement = subNode.getTestElement();
+                    if (testElement instanceof SampleListener) {
+                        ((SampleListener) testElement).sampleOccurred(event);
+                    }
                 }
             }
         }
@@ -1379,13 +1385,15 @@ public class ProxyControl extends Generi
     private void notifyTestListenersOfStart() {
         JMeterTreeModel treeModel = getJmeterTreeModel();
         JMeterTreeNode myNode = treeModel.getNodeOf(this);
-        Enumeration<JMeterTreeNode> kids = myNode.children();
-        while (kids.hasMoreElements()) {
-            JMeterTreeNode subNode = kids.nextElement();
-            if (subNode.isEnabled()) {
-                TestElement testElement = subNode.getTestElement();
-                if (testElement instanceof TestStateListener) {
-                    ((TestStateListener) testElement).testStarted();
+        if(myNode != null) {
+            Enumeration<JMeterTreeNode> kids = myNode.children();
+            while (kids.hasMoreElements()) {
+                JMeterTreeNode subNode = kids.nextElement();
+                if (subNode.isEnabled()) {
+                    TestElement testElement = subNode.getTestElement();
+                    if (testElement instanceof TestStateListener) {
+                        ((TestStateListener) testElement).testStarted();
+                    }
                 }
             }
         }
@@ -1398,13 +1406,15 @@ public class ProxyControl extends Generi
     private void notifyTestListenersOfEnd() {
         JMeterTreeModel treeModel = getJmeterTreeModel();
         JMeterTreeNode myNode = treeModel.getNodeOf(this);
-        Enumeration<JMeterTreeNode> kids = myNode.children();
-        while (kids.hasMoreElements()) {
-            JMeterTreeNode subNode = kids.nextElement();
-            if (subNode.isEnabled()) {
-                TestElement testElement = subNode.getTestElement();
-                if (testElement instanceof TestStateListener) { // TL - TE
-                    ((TestStateListener) testElement).testEnded();
+        if(myNode != null) {
+            Enumeration<JMeterTreeNode> kids = myNode.children();
+            while (kids.hasMoreElements()) {
+                JMeterTreeNode subNode = kids.nextElement();
+                if (subNode.isEnabled()) {
+                    TestElement testElement = subNode.getTestElement();
+                    if (testElement instanceof TestStateListener) { // TL - TE
+                        ((TestStateListener) testElement).testEnded();
+                    }
                 }
             }
         }