Skip to content

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

@rojyates

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.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions