One of these risks are breaking changes in Lombok. As of June 2019 the phrase “breaking change” appears 10 times in the Lombok changelog, all of them in 7 latests versions (v1.16.20 – v1.18.8). This is very alarming as it looks folks behind Lombok start to introduce more and more such changes last time.
And actually I’ve faced a result of such a breaking change. After upgrading Lombok one of REST API operations stopped to work. It was really strange, as the operation was invoked only by an internal system which didn’t change. But the system started receiving response with status 400 (bad request). It took almost a whole day to investigate what was the root cause. And it turned to be a problem with deserialization of request payload in JSON format caused by missing no-args constructor. More or less something like this issue: “Lombok 1.16.20 breaks Jackson serialization when using Builder annotation”.
If the damn simple Java class representing request payload was implemented without Lombok there would be no issue and no wasted man-day.
It wasn’t the first time in my professional career when I observed time wasted by Lombok. Now I really think this thing wastes more time than it saves.
Please note that the word “bugfix” appears 151 times in in the Lombok changelog…