Skip to content

Commit a7686af

Browse files
jderegclaude
andcommitted
Bump jackson-databind test dependency 2.21.2 -> 2.21.3
Patch-level update; test-scope only. No runtime impact. Picked up via `mvn versions:display-dependency-updates`. All 20,125 tests pass with the new version. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 510048e commit a7686af

2 files changed

Lines changed: 2 additions & 1 deletion

File tree

changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
### Revision History
22

33
#### 4.102.0 - (Unreleased)
4+
* **BUILD**: jackson-databind test dependency bumped 2.21.2 → 2.21.3 (patch). Test-scope only; no runtime impact.
45
* **CORRECTNESS**: `FastReader.readUntilBorrowed()` now computes its scan boundary without `pos + maxLen` overflow. Very large `maxLen` values with a non-zero buffer position could previously return `COPY_REQUIRED` even when the delimiter was already in the current buffer; the borrowed-slice fast path now clamps by available buffer length instead. Added regression coverage.
56
* **CORRECTNESS**: `FastReader.BufferSlice` — added an assertion-checked `release()` lifecycle for borrowed slices. With assertions enabled, callers must consume or copy borrowed data and release the slice before the next `FastReader` read/pushback/close; attempts to read with an outstanding borrowed slice fail fast, catching stale-buffer misuse. Production behavior unchanged when assertions are disabled. JFR comparison post-change showed no measurable guard overhead (samples/sec flat at 49.83, `readLineBorrowed` share 1.301% → 1.264%).
67
* **PERFORMANCE**: `RegexUtilities.SafeMatchResult` — replaced eager group extraction with a lazy `MatchResult` snapshot. The constructor previously called `matcher.group(i)` for every capturing group, allocating a `String` per group whether the caller read it or not. For patterns like `DateUtilities.alphaMonthPattern` (11 groups, 3-4 typically read), 7-8 wasted `String` allocations per call — IDE line profiler attributed ~840ms of `JsonPerformanceTest` wall time to the constructor. Fix: hold a `java.util.regex.MatchResult` (via `matcher.toMatchResult()`) and lazy-slice in `group(i)`. `MatchResult` copies only the start/end int[] (cheap), so unaccessed groups now cost zero allocation. Snapshot semantics preserved.

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<version.agrona>1.22.0</version.agrona> <!-- do not increase past 1.22.0 until abandoning JDK 8 support, class file format 52 -->
3737
<version.commons-collections4>4.5.0</version.commons-collections4>
3838
<version.guava>33.6.0-jre</version.guava>
39-
<version.jackson-databind>2.21.2</version.jackson-databind>
39+
<version.jackson-databind>2.21.3</version.jackson-databind>
4040

4141
<!-- Build maven-***-plugins -->
4242
<version.maven-jar-plugin>3.5.0</version.maven-jar-plugin>

0 commit comments

Comments
 (0)