You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Akhilesh Singh (Jira)" <ji...@apache.org> on 2021/01/11 14:02:00 UTC
[jira] [Comment Edited] (NETBEANS-5069) Wrong rendering of Lombok
classes
[ https://issues.apache.org/jira/browse/NETBEANS-5069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17262652#comment-17262652 ]
Akhilesh Singh edited comment on NETBEANS-5069 at 1/11/21, 2:01 PM:
--------------------------------------------------------------------
After analysis and complete investigation found the issue is with the latest release of lombok(i.e. 1.18.16), this release unable to resolve the correct owner-kind for any variable(defined by the annotation @RequiredArgsConstructor and @setter) on the fly.
*Problematic area*
Consider the below code snippet
{color:#0747a6}_package net.ponec.junitlombok;_{color}
{color:#0747a6}_import lombok.Setter;_{color}
{color:#0747a6} _@Setter_ {color}
{color:#0747a6}_public class Bean {_{color}
{color:#0747a6} _private Integer id;_{color}
{color:#0747a6}_}_{color}
Will convert to the following after process the annotation @Setter
{color:#0747a6}_package net.ponec.junitlombok;_{color}
{color:#0747a6}_import lombok.Setter;_{color}
{color:#0747a6} _@Setter_ {color}
{color:#0747a6}_public class Bean {_{color}
{color:#0747a6} _private Integer id;_{color}
{color:#0747a6}_void setId(final Integer id){_{color}
{color:#0747a6}_this.setId = id;_{color}
{color:#0747a6}_}_{color}
{color:#0747a6}_}_{color}
As per the compilation process, the owner for the method param variable "final Integer id" is the method "setId" of type MTH. But lombok(1.18.16) processing this as a null of type NIL. PFB screenshots
!image-2021-01-11-18-50-15-153.png!
!image-2021-01-11-18-54-02-495.png!
Due to the problem of incorrect owner-kind(NIL) the variable "final Integer id" is not trackable via nbjavac-15 and its setting the address -1 for this variable. And the compilation of class *Bean* is not successful. The classes that's uses the Bean class showing compilation error. The example attached in this defect used @RequiredArgsConstructor annotation, for this owner-kind for the variable "final Integer id" is Constructor of type MTH coming as a NIL.
Same is not happening with the lombok versions below 1.18.16. Below analysis performed using lombok 1.18.12
!image-2021-01-11-19-09-26-260.png!
!image-2021-01-11-19-11-33-670.png!
As lombok 1.18.12 processing the annotation @Setter correctly the owner-kind as MTH for the variable "final Integer id", so there is no problem with the compilation.
Tested some other annotations also like @Getter and @toString that's working fine with this version 1.18.16 because there no parameter required to pass for the method signature *getId(){}* & *toString(){},* so no owner-kind variable concept exist here.
was (Author: singh-akhilesh):
After analysis and complete investigation found the issue is with the latest release of lombok(i.e. 1.18.16), this release unable to resolve the correct owner-kind for any variable(defined by the annotation @RequiredArgsConstructor and @setter) on the fly.
*Problematic area*
Consider the below code snippet
{color:#0747a6}_package net.ponec.junitlombok;_{color}
{color:#0747a6}_import lombok.Setter;_{color}
{color:#0747a6} _@Setter_ {color}
{color:#0747a6}_public class Bean {_{color}
{color:#0747a6} _private Integer id;_{color}
{color:#0747a6}_}_{color}
Will convert to the following after process the annotation @Setter
{color:#0747a6}_package net.ponec.junitlombok;_{color}
{color:#0747a6}_import lombok.Setter;_{color}
{color:#0747a6} _@Setter_ {color}
{color:#0747a6}_public class Bean {_{color}
{color:#0747a6} _private Integer id;_{color}
{color:#0747a6}_void setId(final Integer id){_{color}
{color:#0747a6}_this.setId = id;_{color}
{color:#0747a6}_}_{color}
{color:#0747a6}_}_{color}
As per the compilation process, the owner for the method param variable "final Integer id" is the method "setId" of type MTH. But lombok(1.18.16) considering this as a null of type NIL. PFB screenshots
!image-2021-01-11-18-50-15-153.png!
!image-2021-01-11-18-54-02-495.png!
Due to the problem of incorrect owner-kind(NIL) the variable "final Integer id" is not trackable via nbjavac-15 and its setting the address -1 for this variable. And the compilation of class *Bean* is not successful. The classes that's uses the Bean class showing compilation error. The example attached in this defect used @RequiredArgsConstructor annotation, for this owner-kind for the variable "final Integer id" is Constructor of type MTH coming as a NIL.
Same is not happening with the lombok versions below 1.18.16. Below analysis performed using lombok 1.18.12
!image-2021-01-11-19-09-26-260.png!
!image-2021-01-11-19-11-33-670.png!
As lombok 1.18.12 processing the annotation @Setter correctly the owner-kind as MTH for the variable "final Integer id", so there is no problem with the compilation.
Tested some other annotations also like @Getter and @toString that's working fine with this version 1.18.16 because there no parameter required to pass for the method signature *getId(){}* & *toString(){},* so no owner-kind variable concept exist here.
> Wrong rendering of Lombok classes
> ---------------------------------
>
> Key: NETBEANS-5069
> URL: https://issues.apache.org/jira/browse/NETBEANS-5069
> Project: NetBeans
> Issue Type: Bug
> Affects Versions: 12.1
> Environment: Product Version: Apache NetBeans IDE 12.1
> Java: 11.0.9.1; OpenJDK 64-Bit Server VM 11.0.9.1+12-LTS
> Runtime: OpenJDK Runtime Environment 11.0.9.1+12-LTS
> System: Linux version 5.4.0-54-generic running on amd64; UTF-8; cs_CZ (nb)
> openjdk version "11.0.8" 2020-07-14 LTS
> OpenJDK Runtime Environment Corretto-11.0.8.10.1 (build 11.0.8+10-LTS)
> OpenJDK 64-Bit Server VM Corretto-11.0.8.10.1 (build 11.0.8+10-LTS, mixed mode)
> No LSB modules are available.
> Distributor ID: Ubuntu
> Description: Ubuntu 20.04.1 LTS
> Release: 20.04
> Codename: focal
> Reporter: Paul Ponec
> Assignee: Akhilesh Singh
> Priority: Critical
> Attachments: JUnitLombok.zip, Snímek obrazovky_2020-11-25_19-49-52_NetBeans-12.1.jpg, VirtualBox_2020-12-10_nb12-about.png, VirtualBox_2020-12-10_nb12-about.png, VirtualBox_2020-12-10_nb12-bug.png, VirtualBox_2020-12-10_nb12-bug.png, image-2021-01-11-18-45-54-202.png, image-2021-01-11-18-46-46-572.png, image-2021-01-11-18-47-57-876.png, image-2021-01-11-18-50-15-153.png, image-2021-01-11-18-54-02-495.png, image-2021-01-11-18-57-31-301.png, image-2021-01-11-19-09-26-260.png, image-2021-01-11-19-11-33-670.png, lombok.png
>
>
> The IDE displays false errors in classes affected by Lombok framework. I have attached a screenshot and a sample project. Although it might seem that this is only a cosmetic mistake, the NetBeans is practically unusable on larger projects, and this situation has forced me to temporarily switch to competing IDE.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists