diff --git a/backport-Fix-Non-blocking-parser-reports-incorrect-locations.patch b/backport-Fix-Non-blocking-parser-reports-incorrect-locations.patch new file mode 100644 index 0000000000000000000000000000000000000000..b2a268b52f34a1afba46ca70a504bbdcb64397d1 --- /dev/null +++ b/backport-Fix-Non-blocking-parser-reports-incorrect-locations.patch @@ -0,0 +1,68 @@ +From 7a208074cb9144d492f972221f7c7b307a1f6d76 Mon Sep 17 00:00:00 2001 +From: Tatu Saloranta +Date: Fri, 5 Apr 2019 20:38:51 -0700 +Subject: [PATCH] Backport #531 fix to 2.9.9 + +--- + release-notes/VERSION-2.x | 2 + + .../json/async/NonBlockingJsonParser.java | 1 + + .../core/json/async/AsyncLocationTest.java | 38 +++++++++++++++++++ + 3 files changed, 41 insertions(+) + create mode 100644 src/test/java/com/fasterxml/jackson/core/json/async/AsyncLocationTest.java + +diff --git a/src/main/java/com/fasterxml/jackson/core/json/async/NonBlockingJsonParser.java b/src/main/java/com/fasterxml/jackson/core/json/async/NonBlockingJsonParser.java +index 3a7a92b3c2..72d6091d26 100644 +--- a/src/main/java/com/fasterxml/jackson/core/json/async/NonBlockingJsonParser.java ++++ b/src/main/java/com/fasterxml/jackson/core/json/async/NonBlockingJsonParser.java +@@ -94,6 +94,7 @@ public void feedInput(byte[] buf, int start, int end) throws IOException + _currInputRowStart = start - (_inputEnd - _currInputRowStart); + + // And then update buffer settings ++ _currBufferStart = start; + _inputBuffer = buf; + _inputPtr = start; + _inputEnd = end; +diff --git a/src/test/java/com/fasterxml/jackson/core/json/async/AsyncLocationTest.java b/src/test/java/com/fasterxml/jackson/core/json/async/AsyncLocationTest.java +new file mode 100644 +index 0000000000..e108b98e11 +--- /dev/null ++++ b/src/test/java/com/fasterxml/jackson/core/json/async/AsyncLocationTest.java +@@ -0,0 +1,38 @@ ++package com.fasterxml.jackson.core.json.async; ++ ++import com.fasterxml.jackson.core.*; ++import com.fasterxml.jackson.core.async.AsyncTestBase; ++import com.fasterxml.jackson.core.async.ByteArrayFeeder; ++ ++public class AsyncLocationTest extends AsyncTestBase ++{ ++ private final JsonFactory DEFAULT_F = new JsonFactory(); ++ ++ // for [core#531] ++ public void testLocationOffsets() throws Exception ++ { ++ JsonParser parser = DEFAULT_F.createNonBlockingByteArrayParser(); ++ ByteArrayFeeder feeder = (ByteArrayFeeder) parser.getNonBlockingInputFeeder(); ++ ++ byte[] input = utf8Bytes("[[["); ++ ++ feeder.feedInput(input, 2, 3); ++ assertEquals(JsonToken.START_ARRAY, parser.nextToken()); ++ assertEquals(1, parser.getCurrentLocation().getByteOffset()); ++ assertEquals(1, parser.getTokenLocation().getByteOffset()); ++ assertEquals(1, parser.getCurrentLocation().getLineNr()); ++ assertEquals(1, parser.getTokenLocation().getLineNr()); ++ assertEquals(2, parser.getCurrentLocation().getColumnNr()); ++ assertEquals(1, parser.getTokenLocation().getColumnNr()); ++ ++ feeder.feedInput(input, 0, 1); ++ assertEquals(JsonToken.START_ARRAY, parser.nextToken()); ++ assertEquals(2, parser.getCurrentLocation().getByteOffset()); ++ assertEquals(2, parser.getTokenLocation().getByteOffset()); ++ assertEquals(1, parser.getCurrentLocation().getLineNr()); ++ assertEquals(1, parser.getTokenLocation().getLineNr()); ++ assertEquals(3, parser.getCurrentLocation().getColumnNr()); ++ assertEquals(2, parser.getTokenLocation().getColumnNr()); ++ parser.close(); ++ } ++} diff --git a/jackson-core.spec b/jackson-core.spec index d79d84f79f2526674eef11ca3a7e3c0430e341df..27d711012dfb15b6ee615adb78fe8262f148b50b 100644 --- a/jackson-core.spec +++ b/jackson-core.spec @@ -1,10 +1,13 @@ Name: jackson-core Version: 2.9.8 -Release: 1 +Release: 2 Summary: Core part of Jackson License: ASL 2.0 URL: https://github.com/FasterXML/jackson-core/ Source0: https://github.com/FasterXML/jackson-core/archive/%{name}-%{version}.tar.gz + +Patch01: backport-Fix-Non-blocking-parser-reports-incorrect-locations.patch + BuildRequires: maven-local mvn(com.fasterxml.jackson:jackson-base:pom:) >= %{version} BuildRequires: mvn(com.google.code.maven-replacer-plugin:replacer) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) @@ -21,13 +24,15 @@ Obsoletes: %{name}-javadoc < %{version}-%{release} This package contains API documentation for %{name}. %prep -%setup -q -n %{name}-%{name}-%{version} +%setup -q -n %{name}-%{name}-%{version} %pom_remove_plugin ":maven-enforcer-plugin" cp -p src/main/resources/META-INF/LICENSE . cp -p src/main/resources/META-INF/NOTICE . sed -i 's/\r//' LICENSE NOTICE %mvn_file : %{name} +%patch01 -p1 + %build %mvn_build @@ -42,6 +47,9 @@ sed -i 's/\r//' LICENSE NOTICE %license LICENSE NOTICE %changelog +* Mon Dec 02 2024 zhaosaisai - 2.9.8-2 +- backport Fix Non-blocking parser reports incorrect locations + * Fri Aug 28 2020 huanghaitao - 2.9.8-1 - Upgrade to 2.9.8-1