Skip to content
This repository was archived by the owner on Apr 14, 2026. It is now read-only.

Fix Jackson 2.21 compatibility: PropertyNamingStrategy.UPPER_CAMEL_CASE removed#3

Merged
udirctera merged 1 commit intomainfrom
fix/jackson-2.21-compatibility
Apr 14, 2026
Merged

Fix Jackson 2.21 compatibility: PropertyNamingStrategy.UPPER_CAMEL_CASE removed#3
udirctera merged 1 commit intomainfrom
fix/jackson-2.21-compatibility

Conversation

@udirctera
Copy link
Copy Markdown

@udirctera udirctera commented Apr 13, 2026

Summary

  • Migrate PropertyNamingStrategy.UPPER_CAMEL_CASE ? PropertyNamingStrategies.UPPER_CAMEL_CASE in NomadJson.java
  • Update compile-time Jackson version from 2.10.3 to 2.18.2

Problem

Jackson 2.21 (bundled with Spring Boot 3.5.x / Portal 8.5.x) removed the deprecated static field PropertyNamingStrategy.UPPER_CAMEL_CASE. This causes a fatal NoSuchFieldError at runtime when NomadJson class initializes, crashing the Setup thread and preventing slave server initialization.

Error on Portal app servers (PIM-7078):

Exception in thread "Setup" java.lang.NoSuchFieldError:
  Class com.fasterxml.jackson.databind.PropertyNamingStrategy
  does not have member field UPPER_CAMEL_CASE
  at com.hashicorp.nomad.javasdk.NomadJson.<clinit>(NomadJson.java:29)

Fix

PropertyNamingStrategies (plural) was introduced in Jackson 2.12 as the replacement. The UPPER_CAMEL_CASE constant is functionally identical. This is a compile-time safe change that works with Jackson 2.12 through 2.21+.

Test plan

  • mvn compile -pl sdk -am passes (BUILD SUCCESS)
  • Build and deploy to a fresh multi-server Portal environment
  • Verify slave servers complete initialization past initServices

…SE removed

Jackson 2.21 (bundled with Spring Boot 3.5.x) removed the deprecated
static field PropertyNamingStrategy.UPPER_CAMEL_CASE, causing a fatal
NoSuchFieldError at runtime when NomadJson class initializes.

Migrate to PropertyNamingStrategies.UPPER_CAMEL_CASE (available since
Jackson 2.12) and update the compile-time Jackson version to 2.18.2.

This fixes PIM-7078 where slave server initialization crashes with:
  Exception in thread "Setup" java.lang.NoSuchFieldError:
  Class com.fasterxml.jackson.databind.PropertyNamingStrategy
  does not have member field UPPER_CAMEL_CASE

Made-with: Cursor
@udirctera udirctera merged commit 21466e0 into main Apr 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant