This is an automated email from the ASF dual-hosted git repository. vladimirsitnikov 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 311342a7bc fix(deps): update com.fasterxml.jackson.core to v2.16.0 311342a7bc is described below commit 311342a7bc24f537d65bd0c82dd509c0340b4a7e Author: Mend Renovate <b...@renovateapp.com> AuthorDate: Fri Dec 8 04:49:02 2023 +0000 fix(deps): update com.fasterxml.jackson.core to v2.16.0 Fixes https://github.com/apache/jmeter/pull/6124 --- src/bom-thirdparty/build.gradle.kts | 6 +++--- .../jmeter/assertions/jmespath/JMESPathAssertion.java | 7 ++++++- .../jmeter/extractor/json/jmespath/JMESPathExtractor.java | 7 ++++++- .../extractor/json/render/RenderAsJmesPathRenderer.java | 7 ++++++- .../org/apache/jmeter/report/dashboard/JsonExporter.java | 9 +++++++-- .../apache/jmeter/protocol/bolt/sampler/BoltSampler.java | 10 ++++++++-- .../jmeter/protocol/http/proxy/DefaultSamplerCreator.java | 7 ++++++- .../protocol/http/util/GraphQLRequestParamUtils.java | 12 +++++++++--- .../protocol/http/util/TestGraphQLRequestParamUtils.java | 15 ++++++++++----- 9 files changed, 61 insertions(+), 19 deletions(-) diff --git a/src/bom-thirdparty/build.gradle.kts b/src/bom-thirdparty/build.gradle.kts index fcbd93af63..d80302d4c5 100644 --- a/src/bom-thirdparty/build.gradle.kts +++ b/src/bom-thirdparty/build.gradle.kts @@ -42,9 +42,9 @@ dependencies { api("bsf:bsf:2.4.0") api("cglib:cglib-nodep:3.3.0") - api("com.fasterxml.jackson.core:jackson-annotations:2.15.2") - api("com.fasterxml.jackson.core:jackson-core:2.15.2") - api("com.fasterxml.jackson.core:jackson-databind:2.15.2") + api("com.fasterxml.jackson.core:jackson-annotations:2.16.0") + api("com.fasterxml.jackson.core:jackson-core:2.16.0") + api("com.fasterxml.jackson.core:jackson-databind:2.16.0") api("com.fifesoft:rsyntaxtextarea:3.3.4") api("com.formdev:svgSalamander:1.1.4") api("com.github.ben-manes.caffeine:caffeine:2.9.3") diff --git a/src/components/src/main/java/org/apache/jmeter/assertions/jmespath/JMESPathAssertion.java b/src/components/src/main/java/org/apache/jmeter/assertions/jmespath/JMESPathAssertion.java index 780ea8ce79..c6b615dd65 100644 --- a/src/components/src/main/java/org/apache/jmeter/assertions/jmespath/JMESPathAssertion.java +++ b/src/components/src/main/java/org/apache/jmeter/assertions/jmespath/JMESPathAssertion.java @@ -32,8 +32,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.StreamReadFeature; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.json.JsonMapper; import com.fasterxml.jackson.databind.node.NullNode; import io.burt.jmespath.Expression; @@ -56,7 +58,10 @@ public class JMESPathAssertion extends AbstractTestElement implements Serializab private static final String EXPECT_NULL = "EXPECT_NULL"; private static final String INVERT = "INVERT"; private static final String ISREGEX = "ISREGEX"; - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder() + // See https://github.com/FasterXML/jackson-core/issues/991 + .enable(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION) + .build(); private static final boolean USE_JAVA_REGEX = !JMeterUtils.getPropDefault( "jmeter.regex.engine", "oro").equalsIgnoreCase("oro"); diff --git a/src/components/src/main/java/org/apache/jmeter/extractor/json/jmespath/JMESPathExtractor.java b/src/components/src/main/java/org/apache/jmeter/extractor/json/jmespath/JMESPathExtractor.java index 0001124d81..85650c9c9a 100644 --- a/src/components/src/main/java/org/apache/jmeter/extractor/json/jmespath/JMESPathExtractor.java +++ b/src/components/src/main/java/org/apache/jmeter/extractor/json/jmespath/JMESPathExtractor.java @@ -37,8 +37,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.StreamReadFeature; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.json.JsonMapper; import com.fasterxml.jackson.databind.node.ArrayNode; import io.burt.jmespath.Expression; @@ -59,7 +61,10 @@ public class JMESPathExtractor extends AbstractScopedTestElement private static final String DEFAULT_VALUE = "JMESExtractor.defaultValue"; // $NON-NLS-1$ private static final String MATCH_NUMBER = "JMESExtractor.matchNumber"; // $NON-NLS-1$ private static final String REF_MATCH_NR = "_matchNr"; // $NON-NLS-1$ - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder() + // See https://github.com/FasterXML/jackson-core/issues/991 + .enable(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION) + .build(); @Override public void process() { diff --git a/src/components/src/main/java/org/apache/jmeter/extractor/json/render/RenderAsJmesPathRenderer.java b/src/components/src/main/java/org/apache/jmeter/extractor/json/render/RenderAsJmesPathRenderer.java index 45e1241d3c..5545cdb5d1 100644 --- a/src/components/src/main/java/org/apache/jmeter/extractor/json/render/RenderAsJmesPathRenderer.java +++ b/src/components/src/main/java/org/apache/jmeter/extractor/json/render/RenderAsJmesPathRenderer.java @@ -24,8 +24,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.StreamReadFeature; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.json.JsonMapper; import com.fasterxml.jackson.databind.node.ArrayNode; import com.google.auto.service.AutoService; @@ -36,7 +38,10 @@ import com.google.auto.service.AutoService; @AutoService(ResultRenderer.class) public class RenderAsJmesPathRenderer extends AbstractRenderAsJsonRenderer { private static final Logger log = LoggerFactory.getLogger(RenderAsJmesPathRenderer.class); - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder() + // See https://github.com/FasterXML/jackson-core/issues/991 + .enable(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION) + .build(); @Override protected String getTabLabel() { diff --git a/src/core/src/main/java/org/apache/jmeter/report/dashboard/JsonExporter.java b/src/core/src/main/java/org/apache/jmeter/report/dashboard/JsonExporter.java index 9ad3a0a435..c942ee45ea 100644 --- a/src/core/src/main/java/org/apache/jmeter/report/dashboard/JsonExporter.java +++ b/src/core/src/main/java/org/apache/jmeter/report/dashboard/JsonExporter.java @@ -39,8 +39,9 @@ import org.apache.jorphan.util.JOrphanUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.core.StreamReadFeature; import com.fasterxml.jackson.databind.ObjectWriter; +import com.fasterxml.jackson.databind.json.JsonMapper; /** * Implementation of {@link DataExporter} that exports statistics to JSON @@ -52,7 +53,11 @@ public class JsonExporter extends AbstractDataExporter { public static final String OUTPUT_FILENAME = "statistics.json"; private static final FileFilter JSON_FILE_FILTER = file -> file.isFile() && file.getName().equals(OUTPUT_FILENAME); - private final static ObjectWriter OBJECT_WRITER = new ObjectMapper().writerWithDefaultPrettyPrinter(); + private final static ObjectWriter OBJECT_WRITER = JsonMapper.builder() + // See https://github.com/FasterXML/jackson-core/issues/991 + .enable(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION) + .build() + .writerWithDefaultPrettyPrinter(); public JsonExporter() { diff --git a/src/protocol/bolt/src/main/java/org/apache/jmeter/protocol/bolt/sampler/BoltSampler.java b/src/protocol/bolt/src/main/java/org/apache/jmeter/protocol/bolt/sampler/BoltSampler.java index d01cedbbef..78f2a41338 100644 --- a/src/protocol/bolt/src/main/java/org/apache/jmeter/protocol/bolt/sampler/BoltSampler.java +++ b/src/protocol/bolt/src/main/java/org/apache/jmeter/protocol/bolt/sampler/BoltSampler.java @@ -45,9 +45,10 @@ import org.neo4j.driver.TransactionConfig; import org.neo4j.driver.exceptions.Neo4jException; import org.neo4j.driver.summary.ResultSummary; +import com.fasterxml.jackson.core.StreamReadFeature; import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectReader; +import com.fasterxml.jackson.databind.json.JsonMapper; @TestElementMetadata(labelResource = "displayName") public class BoltSampler extends AbstractBoltTestElement implements Sampler, TestBean, ConfigMergabilityIndicator { @@ -57,7 +58,12 @@ public class BoltSampler extends AbstractBoltTestElement implements Sampler, Tes // Enables to initialize object mapper on demand private static class Holder { - private static final ObjectReader OBJECT_READER = new ObjectMapper().readerFor(new TypeReference<HashMap<String, Object>>() {}); + private static final ObjectReader OBJECT_READER = JsonMapper.builder() + // See https://github.com/FasterXML/jackson-core/issues/991 + .enable(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION) + .build() + .readerFor(new TypeReference<HashMap<String, Object>>() { + }); } @Override diff --git a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java index fc075cc310..aa2fd9516d 100644 --- a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java +++ b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java @@ -58,7 +58,9 @@ import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.StreamReadFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.json.JsonMapper; import com.google.auto.service.AutoService; /** @@ -76,7 +78,10 @@ public class DefaultSamplerCreator extends AbstractSamplerCreator { private static final int SAMPLER_NAME_NAMING_MODE_SUFFIX = 2; // $NON-NLS-1$ private static final int SAMPLER_NAME_NAMING_MODE_FORMATTER = 3; // $NON_NLS-1$ - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + private static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder() + // See https://github.com/FasterXML/jackson-core/issues/991 + .enable(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION) + .build(); /** * */ diff --git a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/util/GraphQLRequestParamUtils.java b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/util/GraphQLRequestParamUtils.java index 00673bf4ab..f64ba78099 100644 --- a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/util/GraphQLRequestParamUtils.java +++ b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/util/GraphQLRequestParamUtils.java @@ -36,8 +36,10 @@ import org.apache.jmeter.testelement.property.JMeterProperty; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.StreamReadFeature; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.json.JsonMapper; import com.fasterxml.jackson.databind.node.JsonNodeType; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -56,6 +58,11 @@ public final class GraphQLRequestParamUtils { private static final JsonFactory jsonFactory = new JsonFactory(); + private static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder() + // See https://github.com/FasterXML/jackson-core/issues/991 + .enable(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION) + .build(); + private GraphQLRequestParamUtils() { } @@ -133,11 +140,10 @@ public final class GraphQLRequestParamUtils { final String encoding = StringUtils.isNotEmpty(contentEncoding) ? contentEncoding : EncoderCache.URL_ARGUMENT_ENCODING; - final ObjectMapper mapper = new ObjectMapper(); ObjectNode data; try (InputStreamReader reader = new InputStreamReader(new ByteArrayInputStream(postData), encoding)) { - data = mapper.readValue(reader, ObjectNode.class); + data = OBJECT_MAPPER.readValue(reader, ObjectNode.class); } catch (IOException e) { throw new IllegalArgumentException("Invalid json data: " + e.getLocalizedMessage(), e); } @@ -166,7 +172,7 @@ public final class GraphQLRequestParamUtils { final JsonNodeType nodeType = variablesNode.getNodeType(); if (nodeType != JsonNodeType.NULL) { if (nodeType == JsonNodeType.OBJECT) { - variables = mapper.writeValueAsString(variablesNode); + variables = OBJECT_MAPPER.writeValueAsString(variablesNode); } else { throw new IllegalArgumentException("Not a valid object node for GraphQL variables."); } diff --git a/src/protocol/http/src/test/java/org/apache/jmeter/protocol/http/util/TestGraphQLRequestParamUtils.java b/src/protocol/http/src/test/java/org/apache/jmeter/protocol/http/util/TestGraphQLRequestParamUtils.java index be7b075eed..5ad929b5c1 100644 --- a/src/protocol/http/src/test/java/org/apache/jmeter/protocol/http/util/TestGraphQLRequestParamUtils.java +++ b/src/protocol/http/src/test/java/org/apache/jmeter/protocol/http/util/TestGraphQLRequestParamUtils.java @@ -36,8 +36,10 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; +import com.fasterxml.jackson.core.StreamReadFeature; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.json.JsonMapper; class TestGraphQLRequestParamUtils { @@ -73,7 +75,10 @@ class TestGraphQLRequestParamUtils { + "\"query\":\"" + StringUtils.replace(QUERY.trim(), "\n", "\\n") + "\"" + "}"; - private static final ObjectMapper objectMapper = new ObjectMapper(); + private static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder() + // See https://github.com/FasterXML/jackson-core/issues/991 + .enable(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION) + .build();; private GraphQLRequestParams params; @@ -101,8 +106,8 @@ class TestGraphQLRequestParamUtils { } static Stream<org.junit.jupiter.params.provider.Arguments> postBodyFieldNameAndJsonNodes() throws Exception { - final JsonNode expectedPostBodyJson = objectMapper.readTree(EXPECTED_POST_BODY); - final JsonNode actualPostBodyJson = objectMapper.readTree( + final JsonNode expectedPostBodyJson = OBJECT_MAPPER.readTree(EXPECTED_POST_BODY); + final JsonNode actualPostBodyJson = OBJECT_MAPPER.readTree( GraphQLRequestParamUtils.toPostBodyString(new GraphQLRequestParams(OPERATION_NAME, QUERY, VARIABLES))); return Stream.of( arguments(GraphQLRequestParamUtils.OPERATION_NAME_FIELD, expectedPostBodyJson, actualPostBodyJson), @@ -124,8 +129,8 @@ class TestGraphQLRequestParamUtils { @Test void testVariablesToGetParamValue() throws Exception { - assertEquals(objectMapper.readTree(EXPECTED_VARIABLES_GET_PARAM_VALUE), - objectMapper.readTree(GraphQLRequestParamUtils.variablesToGetParamValue(params.getVariables()))); + assertEquals(OBJECT_MAPPER.readTree(EXPECTED_VARIABLES_GET_PARAM_VALUE), + OBJECT_MAPPER.readTree(GraphQLRequestParamUtils.variablesToGetParamValue(params.getVariables()))); } @Test