Skip to content

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

Description

@rojyates

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions