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

Lombok Eclipse IDE integration breaks APT in Neon 1 #1218

Closed
ghost opened this Issue Oct 27, 2016 · 3 comments

Comments

Projects
None yet
1 participant
@ghost

ghost commented Oct 27, 2016

When installing the Eclipse IDE integration with the lombok installer (1.16.10), the APT aspect of Eclipse gets broken. Witnessed symptoms are no code generation for Dagger 2, for example. I have uploaded a pastebin of the error stacktrace from my .metadata/.log here:

http://pastebin.com/Z5whqAtb

Additionally I have produced an SSCCE that demonstrates the problem with a clean install of Eclipse Neon 1 with nothing but Lombok 1.16.10 installed:

https://bitbucket.org/Twisti/lombok-neon-apt/src/c37c6c0b9a6c6075456ebf1df50c477de8c9bb27/eclipse-apt-problem/?at=master

Project is at https://bitbucket.org/Twisti/lombok-neon-apt

Compiling the project manually with Maven works perfectly fine.

Let me know if you need any additional details please.

rspilker added a commit that referenced this issue Nov 7, 2016

[issue #1218] Annotation Processors that have an (internal) dependenc…
…y on ecj (google's dagger project has this, don't know of any others), when run inside eclipse, bombs with a LinkageError. Fixed.
@rzwitserloot

This comment has been minimized.

Show comment
Hide comment
@rzwitserloot

rzwitserloot Nov 7, 2016

Owner

Here's the thing: Dagger has a dep on googlejavaformat, which has a dep on... ecj.

Which lombok sees and goes: Oooh! I have to lombokize it!

Which doesn't work well. And isnt needed. The fix is to realize that this particular ecj is an internal dep of some annotation processor being run 'in process' in eclipse, and then.. not lombokize it at all.

@rspilker 's recent commit is our work on doing just that. Seems to work now :)

NB: I'm not aware of any commonly used annotation processor that internally depends on ecj other than dagger, so presumably this is an eclipse+Dagger+lombok specific issue.

Owner

rzwitserloot commented Nov 7, 2016

Here's the thing: Dagger has a dep on googlejavaformat, which has a dep on... ecj.

Which lombok sees and goes: Oooh! I have to lombokize it!

Which doesn't work well. And isnt needed. The fix is to realize that this particular ecj is an internal dep of some annotation processor being run 'in process' in eclipse, and then.. not lombokize it at all.

@rspilker 's recent commit is our work on doing just that. Seems to work now :)

NB: I'm not aware of any commonly used annotation processor that internally depends on ecj other than dagger, so presumably this is an eclipse+Dagger+lombok specific issue.

@rzwitserloot

This comment has been minimized.

Show comment
Hide comment
@rzwitserloot

rzwitserloot Nov 7, 2016

Owner

There's an edge release out with the fix for this. Mind giving it a spin?

https://projectlombok.org/download-edge.html

Owner

rzwitserloot commented Nov 7, 2016

There's an edge release out with the fix for this. Mind giving it a spin?

https://projectlombok.org/download-edge.html

@rzwitserloot rzwitserloot added the parked label Nov 7, 2016

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Nov 8, 2016

This appears to have fixed the issue. Dagger code is now generated the way it used to be. Thanks!

ghost commented Nov 8, 2016

This appears to have fixed the issue. Dagger code is now generated the way it used to be. Thanks!

@ghost ghost closed this Nov 8, 2016

bulgakovalexander added a commit to bulgakovalexander/lombok that referenced this issue Nov 14, 2016

Merge pull request #2 from rzwitserloot/master
[issue #1218] Annotation Processors that have an (internal) dependenc…

This issue was closed.

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