← All recipes
Open source

Remove dead throws declarations for unchecked Jackson exceptions

Recipe IDorg.openrewrite.java.jackson.RemoveDeadJacksonThrowsArtifactorg.openrewrite.recipe:rewrite-jackson

In Jackson 3 the exception hierarchy is rerooted under JacksonException, which extends RuntimeException. Any surviving throws for a Jackson exception type is dead: callers are not required to handle it, and the declaration misleads readers into thinking checked-exception handling is needed. Removes throws for JacksonException and its subtypes (e.g. DatabindException) from both methods and constructors. Assumes the Jackson 2 to 3 package changes have already run, so all Jackson exception types live under tools.jackson. Does not touch throws IOException (still a checked exception) or non-Jackson exception types.

Composite recipejackson-3Apache 2.0

Usage

This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.

mod run . --recipe org.openrewrite.java.jackson.RemoveDeadJacksonThrows

If the recipe isn’t available locally, install it with:

mod config recipes jar install org.openrewrite.recipe:rewrite-jackson:RELEASE

Definition

This recipe runs the following recipes in order.

Data tables

Structured output this recipe can produce.

  • Source files that had resultsSource files that were modified by the recipe run.org.openrewrite.table.SourcesFileResults
  • Source files that had search resultsSearch results that were found during the recipe run.org.openrewrite.table.SearchResults
  • Source files that errored on a recipeThe details of all errors produced by a recipe run.org.openrewrite.table.SourcesFileErrors
  • Recipe performanceStatistics used in analyzing the performance of recipes.org.openrewrite.table.RecipeRunStats