openrewrite / openrewrite/rewrite-migrate-java

Lombok replaces uppercase getter method with generated camelCase, breaking existing code.

Open
#879 6 comments 0 reactions 1 assignee View on GitHub

@rojyates is already working on this.

Since Oct 20, 2025.

bug
Dominant language
Java
Stars
156
Forks
130
Avg merge
20h 57m
Merged PRs (30d)
21

Description

What version of OpenRewrite are you using?

am using

  • OpenRewrite v8.62.0
  • Maven plugin v6.18.0
  • rewrite-migrate-java v3.18.0

How are you running OpenRewrite?

Using the Maven plugin run from the command line.
Multi-module project

Can you share your configuration so that we can rule out any configuration issues?
n/a

Is your project public? If so, can you share a link to it?
Code snippets can also be shared privately via our public Slack.
-->
I am using the Maven plugin, and my project is a single module project.

            <plugin>
                <groupId>org.openrewrite.maven</groupId>
                <artifactId>rewrite-maven-plugin</artifactId>
                <version>6.18.0</version>
                <configuration>
                    <exportDatatables>true</exportDatatables>
                    <activeRecipes>
                        <recipe>org.openrewrite.java.migrate.lombok.LombokBestPractices</recipe>
                    </activeRecipes>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.openrewrite.recipe</groupId>
                        <artifactId>rewrite-migrate-java</artifactId>
                        <version>3.18.0</version>
                    </dependency>
                </dependencies>
            </plugin>

What is the smallest, simplest way to reproduce the problem?

Create a class with a single field and a getter using upper case:

public class Demo {
    private String guid;

   private String getGUID();
}

What did you expect to see?

No change to the class, since Lombok won't generate an uppercase method name (unless there's a new feature that can do this like an 'upperCase=true' flag on a specific @Getter...? Feature request - in which case expected would be @Getter(upperCase=true) ? )

public class Demo {
    private String guid;

   private String getGUID();
}

What did you see instead?

public class Demo {
    @Getter private String guid;
}

This generates a getter method getGuid() which breaks all existing code that used the uppercase getGUID();

What is the full stack trace of any errors you encountered?

Not applicable.

Are you interested in contributing a fix to OpenRewrite?

In the future, but no time at the moment. Will have a read.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.