Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The method builder() is undefined for the type xxx #3733

Closed
f425 opened this issue Aug 2, 2024 · 9 comments · Fixed by #3939
Closed

The method builder() is undefined for the type xxx #3733

f425 opened this issue Aug 2, 2024 · 9 comments · Fixed by #3939
Assignees

Comments

@f425
Copy link

f425 commented Aug 2, 2024

demo

env

  • Windows 10
  • JAVA_HOME: C:\Program Files\Java\jdk1.8.0_202
  • Extension: Pack for Java v0.27.0
  • Extension: Language Support for Java(TM) by Red Hat v1.33.0
  • Extension: Gradle for Java v3.16.1
  • jdk1.8.0_202 from Oracle
  • jdk-17.0.12+7 from Adoptium
  • lombok v1.18.12
  • vscode Version: 1.92.0
  • vscode config setting.json about java and gradle:
    1. C:\\Program Files\\Java\\jdk1.8.0_202 (Oracle jdk8 for code project)
    2. C:\\Program Files\\Eclipse Adoptium\\jdk-17.0.12+7 (for vscode language server)
        {
            "java.jdt.ls.java.home": "C:\\Program Files\\Eclipse Adoptium\\jdk-17.0.12+7",
            "java.import.gradle.java.home": "C:\\Program Files\\Java\\jdk1.8.0_202",
            "java.configuration.runtimes": [
                {
                    "name": "JavaSE-1.8",
                    "path": "C:\\Program Files\\Java\\jdk1.8.0_202",
                    "default": true
                }
            ]
        }

problem

  1. after upgrade Extension: Language Support for Java(TM) by Red Hat to v1.33.0. Got error:
[{
	"resource": "/c:/Users/ww/work/test/project-for-test/test2/src/main/java/com/test2/Test2.java",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "67108964",
	"severity": 8,
	"message": "The method builder() is undefined for the type Data1",
	"source": "Java",
	"startLineNumber": 9,
	"startColumn": 15,
	"endLineNumber": 9,
	"endColumn": 22
}]
  1. Change Extension: Language Support for Java(TM) by Red Hat to v1.32.0. It's OK.
  2. Keep Extension: Language Support for Java(TM) by Red Hat with v1.33.0.
    • copy Data1.java to Data2.java and delete comments.
    • Data2.builder().build() is ok

image

@heguro
Copy link

heguro commented Aug 2, 2024

There seem to be several issues related (or unrelated) to the Javadoc comments of the @Builder class in the latest Lombok 1.18.34. (issue 1, issue 2)

The version of Lombok bundled in this extension is from https://projectlombok.org/lombok-edge.jar, which currently delivers the same binary as Lombok 1.18.34, thereby affecting this extension.

Temporary solutions I discovered:

  • Downgrade this extension to v1.32.0
  • Or use the lombok/lombok-1.18.33.jar bundled in v1.32.0
    • Overwrite the jar file in the same path of the current version, or build and install the .vsix file yourself
Steps to overwrite

Windows PowerShell environment:

# Get and extract vscode-java v1.32.0 binary
curl.exe -LO "https://github.com/redhat-developer/vscode-java/releases/download/v1.32.0/vscode-java-1.32.0-220.vsix"
Rename-Item "vscode-java-1.32.0-220.vsix" "vscode-java-1.32.0-220.vsix.zip"
Expand-Archive -Path ".\vscode-java-1.32.0-220.vsix.zip" -DestinationPath ".\temp_ext"

# Copy .jar file
Copy-Item "temp_ext/extension/lombok/lombok-1.18.33.jar" "$env:userprofile/.vscode/extensions/redhat.java-1.33.0-win32-x64/lombok/lombok-1.18.33.jar"

# Remove downloaded files
Remove-Item -Recurse -Path "temp_ext","vscode-java-1.32.0-220.vsix.zip"

Linux-like environment:

# Get and extract vscode-java v1.32.0 binary
curl -LO https://github.com/redhat-developer/vscode-java/releases/download/v1.32.0/vscode-java-1.32.0-220.vsix
# or wget:
# wget https://github.com/redhat-developer/vscode-java/releases/download/v1.32.0/vscode-java-1.32.0-220.vsix
unzip -d temp_ext/ vscode-java-1.32.0-220.vsix

# Copy .jar file
# Replace .vscode with .vscode-server if you're in remote environment (like wsl, docker or ssh)
cp temp_ext/extension/lombok/lombok-1.18.33.jar /home/$(whoami)/.vscode/extensions/redhat.java-1.33.0*/lombok/lombok-1.18.33.jar

# Remove downloaded files
rm -rf /tmp/temp_ext vscode-java-1.32.0-220.vsix

@f425 f425 changed the title The method builder() is undefined for tye type xxx The method builder() is undefined for the type xxx Aug 3, 2024
@f425
Copy link
Author

f425 commented Aug 3, 2024

@heguro
Lombok version is 1.18.12 in my demo project.
Before this extension v1.33.0, it was working fine.

@f425
Copy link
Author

f425 commented Aug 5, 2024

image
image
image

@iwangbowen
Copy link

Is it fixed in the latest version

@foxpluto
Copy link

foxpluto commented Sep 1, 2024

Which version are you referring? I have the Language Support for Java(TM) by Red Hat v1.35.202408 and the bug is still there.

@iwangbowen
Copy link

when this will be fixed

@Kas-tle
Copy link

Kas-tle commented Sep 15, 2024

Lombok has merged a fix as of a few days ago (see projectlombok/lombok#3726), but they have not done a release yet. So I assume that will have to happen first so that an updated version of Lombok can be bundled with the extension.

@rgrunber
Copy link
Member

#3561 (comment) woke me up. Could someone try the vscode-java pre-release and see if the problem is resolved ? According to

const lombokUrl = `https://projectlombok.org/lombok-edge.jar`;
(the 1.18.33 label we give is wrong, but it's definitely the latest), we're using the latest lombok edge release, which is from 2024-10-18. That definitely should have the fix. If it doesn't work then the problem was never fixed by the PR.

@NicoFraenzel
Copy link

With the currently used Lombok v1.18.34 this is still an issue. Updating to v1.18.36 should fix it (relevant commit: projectlombok/lombok@1ac3950). At least it did so for the Eclipse IDE.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

7 participants