This is an automated email from the ASF dual-hosted git repository.

fschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git


The following commit(s) were added to refs/heads/master by this push:
     new a5e7c62  Make method less complex by extracting code into named 
private methods
a5e7c62 is described below

commit a5e7c62e74710363631cc27a405a5ae5a28a1456
Author: Felix Schumacher <[email protected]>
AuthorDate: Thu Jun 10 20:59:37 2021 +0200

    Make method less complex by extracting code into named private methods
---
 .../extractor/json/jsonpath/JSONPostProcessor.java | 33 ++++++++++++++--------
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git 
a/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONPostProcessor.java
 
b/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONPostProcessor.java
index a307f3b..3e7c5cf 100644
--- 
a/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONPostProcessor.java
+++ 
b/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONPostProcessor.java
@@ -18,6 +18,7 @@
 package org.apache.jmeter.extractor.json.jsonpath;
 
 import java.io.Serializable;
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -82,29 +83,39 @@ public class JSONPostProcessor
                 if (jsonResponses.isEmpty()) {
                     handleEmptyResponse(vars, defaultValues, i, 
currentRefName);
                 } else {
-                    List<Object> extractedValues = new ArrayList<>();
-                    for (String jsonResponse: jsonResponses) {
-                        
extractedValues.addAll(localMatcher.get().extractWithJsonPath(jsonResponse, 
currentJsonPath));
-                    }
-                    // if no values extracted, default value added
-                    if (extractedValues.isEmpty()) {
-                        handleEmptyResult(vars, defaultValues, i, matchNumber, 
currentRefName);
-                    } else {
-                        handleNonEmptyResult(vars, defaultValues, i, 
matchNumber, currentRefName, extractedValues);
-                    }
+                    List<Object> extractedValues = 
extractValues(jsonResponses, currentJsonPath);
+                    handleResult(vars, defaultValues, i, matchNumber, 
currentRefName, extractedValues);
                 }
             } catch (Exception e) {
-                // if something wrong, default value added
                 if (log.isDebugEnabled()) {
                     log.error("Error processing JSON content in {}, message: 
{}", getName(), e.getLocalizedMessage(), e);
                 } else {
                     log.error("Error processing JSON content in {}, message: 
{}", getName(), e.getLocalizedMessage());
                 }
+                // if something goes wrong, add default value
                 vars.put(currentRefName, defaultValues[i]);
             }
         }
     }
 
+    private void handleResult(JMeterVariables vars, String[] defaultValues, 
int i, int matchNumber,
+            String currentRefName, List<Object> extractedValues) {
+        // if no values extracted, default value added
+        if (extractedValues.isEmpty()) {
+            handleEmptyResult(vars, defaultValues, i, matchNumber, 
currentRefName);
+        } else {
+            handleNonEmptyResult(vars, defaultValues, i, matchNumber, 
currentRefName, extractedValues);
+        }
+    }
+
+    private List<Object> extractValues(List<String> jsonResponses, String 
currentJsonPath) throws ParseException {
+        List<Object> extractedValues = new ArrayList<>();
+        for (String jsonResponse: jsonResponses) {
+            
extractedValues.addAll(localMatcher.get().extractWithJsonPath(jsonResponse, 
currentJsonPath));
+        }
+        return extractedValues;
+    }
+
     private void handleNonEmptyResult(JMeterVariables vars, String[] 
defaultValues, int i, int matchNumber,
             String currentRefName, List<Object> extractedValues) {
         // if more than one value extracted, suffix with "_index"

Reply via email to