Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
<reactive-streams.version>1.0.4</reactive-streams.version>
<json.version>20250517</json.version>
<jackson.version>2.21.4</jackson.version>
<jackson-databind.version>2.22.0</jackson-databind.version>
<jackson-databind.version>2.22.1</jackson-databind.version>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

mvn -DskipTests dependency:tree \
  -Dincludes=com.fasterxml.jackson.core

Repository: scylladb/java-driver

Length of output: 199


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show the Jackson-related version properties and dependency declarations with line numbers.
grep -nE 'jackson(\.|-)(version|databind\.version)|com\.fasterxml\.jackson|jackson-(core|databind|annotations)' pom.xml | sed -n '1,200p'

echo
echo "---- dependencyManagement section around Jackson ----"
python3 - <<'PY'
from pathlib import Path
text = Path('pom.xml').read_text().splitlines()
for start in [1]:
    for i, line in enumerate(text, 1):
        if '<dependencyManagement>' in line:
            s = max(1, i-15)
            e = min(len(text), i+220)
            for j in range(s, e+1):
                print(f"{j}:{text[j-1]}")
            raise SystemExit
print("No dependencyManagement section found")
PY

Repository: scylladb/java-driver

Length of output: 9999


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Print the Jackson property block and the dependency entries that use it.
nl -ba pom.xml | sed -n '60,90p'
echo
nl -ba pom.xml | sed -n '415,440p'
echo
# Also show any BOM/imports that may control Jackson versions.
grep -nE '<dependencyManagement>|<scope>import</scope>|jackson-bom|spring-boot-dependencies|com\.fasterxml\.jackson' pom.xml | sed -n '1,120p'

Repository: scylladb/java-driver

Length of output: 198


🌐 Web query:

Jackson core databind same version line compatibility official documentation

💡 Result:

The official recommendation from the FasterXML Jackson project is that all core Jackson components—specifically jackson-annotations, jackson-core, and jackson-databind—must have the same minor version [1][2][3]. While Jackson components are released independently and may occasionally have different patch versions, mixing different minor versions (e.g., core 2.15 and databind 2.16) is strongly discouraged and unsupported [1][2][3]. Mismatched minor versions can lead to runtime issues or incompatibilities due to changes in internal or semi-internal APIs that are not always guaranteed to be backward-compatible across minor releases [2][4][3]. To ensure dependency consistency and avoid compatibility issues, the Jackson project provides and officially recommends using the jackson-bom (Bill of Materials) [5][6]. Importing the jackson-bom in your build tool (Maven or Gradle) ensures that all Jackson modules are aligned to the same, compatible version [7][8][5]. Key points for version compatibility: - Minor versions must match: Core components (annotations, core, databind) should share the same major and minor version [1][2][3]. - Patch versions: While matching patch versions is not strictly required, it is best practice to use the latest available patch version for all components [2][3]. - BOM usage: Using the jackson-bom is the primary method to manage and align versions automatically in complex dependency trees [5][6]. - Major versions: Jackson 1.x, 2.x, and 3.x reside in different Java packages and/or Maven groupIds, meaning they are entirely separate and do not interact; interoperability between major versions does not exist [9][2][6].

Citations:


Align the Jackson versions jackson.version is still 2.21.4 while jackson-databind.version is 2.22.1. Keep Jackson core/databind on the same minor line, or switch to jackson-bom so the modules stay aligned.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pom.xml` at line 74, Align the Jackson dependency versions by updating the
jackson.version property to the same 2.22 minor line as
jackson-databind.version, or adopt jackson-bom for centralized module version
management. Ensure Jackson core and databind resolve to compatible aligned
versions.

<legacy-jackson.version>1.9.12</legacy-jackson.version>
<!-- optional dependencies -->
<snappy.version>1.1.10.8</snappy.version>
Expand Down
Loading