[jira] [Commented] (NETBEANS-251) Generate hashCode/equals() throws NPE

2018-01-12 Thread Jan Lahoda (JIRA)

[ 
https://issues.apache.org/jira/browse/NETBEANS-251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16325007#comment-16325007
 ] 

Jan Lahoda commented on NETBEANS-251:
-

Thanks, I can reproduce now. Seems the fix will be mostly removing some code 
(which is good), but this involves a weirdly attributed tree which I'd like to 
investigate a little.


> Generate hashCode/equals() throws NPE
> -
>
> Key: NETBEANS-251
> URL: https://issues.apache.org/jira/browse/NETBEANS-251
> Project: NetBeans
>  Issue Type: Bug
>  Components: editor - Completion & Templates
> Environment: Product Version: Apache NetBeans IDE Dev (Build 
> incubator-netbeans-release-159-on-20180102)
> Updates: Updates available
> Java: 9.0.1; Java HotSpot(TM) 64-Bit Server VM 9.0.1+11
> Runtime: Java(TM) SE Runtime Environment 9.0.1+11
> System: Windows 10 version 10.0 running on amd64; Cp1252; en_CA (nb)
> User directory: C:\Users\Gili\AppData\Roaming\NetBeans\dev
> Cache directory: C:\Users\Gili\AppData\Local\NetBeans\Cache\dev
>Reporter: Gili
>Assignee: Jan Lahoda
>  Labels: regression
> Attachments: GenerateEqualsNPE.zip
>
>
> 1. Invoke Generate -> equals() and hashCode()
> 2. Select any field(s)
> 3. Click "Generate"
> 4. Exception thrown:
> {code}
> java.lang.NullPointerException
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.widthQ(WidthEstimator.java:92)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.width(WidthEstimator.java:76)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.visitSelect(WidthEstimator.java:262)
>   at 
> com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:2110)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.estimateWidth(WidthEstimator.java:48)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitBinary(VeryPretty.java:1703)
>   at com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1989)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printExpr(VeryPretty.java:2816)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printNoParenExpr(VeryPretty.java:2807)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitIf(VeryPretty.java:1391)
>   at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1421)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printExpr(VeryPretty.java:2816)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printStat(VeryPretty.java:2873)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printStats(VeryPretty.java:2929)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printBlock(VeryPretty.java:3011)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printBlock(VeryPretty.java:2948)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitMethodDef(VeryPretty.java:1002)
>   at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:872)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.print(VeryPretty.java:276)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:3936)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffClassDef(CasualDiff.java:1086)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5215)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5109)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5037)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5008)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:3854)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTopLevel(CasualDiff.java:578)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5188)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5109)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5037)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5020)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diff(CasualDiff.java:346)
>   at 
> org.netbeans.api.java.source.WorkingCopy.processCurrentCompilationUnit(WorkingCopy.java:907)
>   at 
> 

[jira] [Commented] (NETBEANS-251) Generate hashCode/equals() throws NPE

2018-01-12 Thread Gili (JIRA)

[ 
https://issues.apache.org/jira/browse/NETBEANS-251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16324425#comment-16324425
 ] 

Gili commented on NETBEANS-251:
---

Agreed. I see the same.

> Generate hashCode/equals() throws NPE
> -
>
> Key: NETBEANS-251
> URL: https://issues.apache.org/jira/browse/NETBEANS-251
> Project: NetBeans
>  Issue Type: Bug
>  Components: editor - Completion & Templates
> Environment: Product Version: Apache NetBeans IDE Dev (Build 
> incubator-netbeans-release-159-on-20180102)
> Updates: Updates available
> Java: 9.0.1; Java HotSpot(TM) 64-Bit Server VM 9.0.1+11
> Runtime: Java(TM) SE Runtime Environment 9.0.1+11
> System: Windows 10 version 10.0 running on amd64; Cp1252; en_CA (nb)
> User directory: C:\Users\Gili\AppData\Roaming\NetBeans\dev
> Cache directory: C:\Users\Gili\AppData\Local\NetBeans\Cache\dev
>Reporter: Gili
>  Labels: regression
> Attachments: GenerateEqualsNPE.zip
>
>
> 1. Invoke Generate -> equals() and hashCode()
> 2. Select any field(s)
> 3. Click "Generate"
> 4. Exception thrown:
> {code}
> java.lang.NullPointerException
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.widthQ(WidthEstimator.java:92)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.width(WidthEstimator.java:76)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.visitSelect(WidthEstimator.java:262)
>   at 
> com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:2110)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.estimateWidth(WidthEstimator.java:48)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitBinary(VeryPretty.java:1703)
>   at com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1989)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printExpr(VeryPretty.java:2816)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printNoParenExpr(VeryPretty.java:2807)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitIf(VeryPretty.java:1391)
>   at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1421)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printExpr(VeryPretty.java:2816)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printStat(VeryPretty.java:2873)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printStats(VeryPretty.java:2929)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printBlock(VeryPretty.java:3011)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printBlock(VeryPretty.java:2948)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitMethodDef(VeryPretty.java:1002)
>   at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:872)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.print(VeryPretty.java:276)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:3936)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffClassDef(CasualDiff.java:1086)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5215)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5109)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5037)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5008)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:3854)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTopLevel(CasualDiff.java:578)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5188)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5109)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5037)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5020)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diff(CasualDiff.java:346)
>   at 
> org.netbeans.api.java.source.WorkingCopy.processCurrentCompilationUnit(WorkingCopy.java:907)
>   at 
> org.netbeans.api.java.source.WorkingCopy.getChanges(WorkingCopy.java:1319)
>   at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:675)
>   at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:662)
>   at 
> 

[jira] [Commented] (NETBEANS-251) Generate hashCode/equals() throws NPE

2018-01-12 Thread Geertjan Wielenga (JIRA)

[ 
https://issues.apache.org/jira/browse/NETBEANS-251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16323939#comment-16323939
 ] 

Geertjan Wielenga commented on NETBEANS-251:


I can reproduce with the attached project.

> Generate hashCode/equals() throws NPE
> -
>
> Key: NETBEANS-251
> URL: https://issues.apache.org/jira/browse/NETBEANS-251
> Project: NetBeans
>  Issue Type: Bug
>  Components: editor - Completion & Templates
> Environment: Product Version: Apache NetBeans IDE Dev (Build 
> incubator-netbeans-release-159-on-20180102)
> Updates: Updates available
> Java: 9.0.1; Java HotSpot(TM) 64-Bit Server VM 9.0.1+11
> Runtime: Java(TM) SE Runtime Environment 9.0.1+11
> System: Windows 10 version 10.0 running on amd64; Cp1252; en_CA (nb)
> User directory: C:\Users\Gili\AppData\Roaming\NetBeans\dev
> Cache directory: C:\Users\Gili\AppData\Local\NetBeans\Cache\dev
>Reporter: Gili
>  Labels: regression
> Attachments: GenerateEqualsNPE.zip
>
>
> 1. Invoke Generate -> equals() and hashCode()
> 2. Select any field(s)
> 3. Click "Generate"
> 4. Exception thrown:
> {code}
> java.lang.NullPointerException
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.widthQ(WidthEstimator.java:92)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.width(WidthEstimator.java:76)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.visitSelect(WidthEstimator.java:262)
>   at 
> com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:2110)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.estimateWidth(WidthEstimator.java:48)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitBinary(VeryPretty.java:1703)
>   at com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1989)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printExpr(VeryPretty.java:2816)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printNoParenExpr(VeryPretty.java:2807)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitIf(VeryPretty.java:1391)
>   at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1421)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printExpr(VeryPretty.java:2816)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printStat(VeryPretty.java:2873)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printStats(VeryPretty.java:2929)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printBlock(VeryPretty.java:3011)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printBlock(VeryPretty.java:2948)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitMethodDef(VeryPretty.java:1002)
>   at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:872)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.print(VeryPretty.java:276)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:3936)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffClassDef(CasualDiff.java:1086)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5215)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5109)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5037)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5008)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:3854)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTopLevel(CasualDiff.java:578)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5188)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5109)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5037)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5020)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diff(CasualDiff.java:346)
>   at 
> org.netbeans.api.java.source.WorkingCopy.processCurrentCompilationUnit(WorkingCopy.java:907)
>   at 
> org.netbeans.api.java.source.WorkingCopy.getChanges(WorkingCopy.java:1319)
>   at org.netbeans.api.java.source.JavaSource$1.run(JavaSource.java:675)
>   at 

[jira] [Commented] (NETBEANS-251) Generate hashCode/equals() throws NPE

2018-01-11 Thread Jan Lahoda (JIRA)

[ 
https://issues.apache.org/jira/browse/NETBEANS-251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16322958#comment-16322958
 ] 

Jan Lahoda commented on NETBEANS-251:
-

Is there some particular way to reproduce this? I tried on a simple class, and 
I didn't see the NPE. It is hard to do something with bugs like this if one 
cannot reproduce them.

Thanks.


> Generate hashCode/equals() throws NPE
> -
>
> Key: NETBEANS-251
> URL: https://issues.apache.org/jira/browse/NETBEANS-251
> Project: NetBeans
>  Issue Type: Bug
>  Components: editor - Completion & Templates
> Environment: Product Version: Apache NetBeans IDE Dev (Build 
> incubator-netbeans-release-159-on-20180102)
> Updates: Updates available
> Java: 9.0.1; Java HotSpot(TM) 64-Bit Server VM 9.0.1+11
> Runtime: Java(TM) SE Runtime Environment 9.0.1+11
> System: Windows 10 version 10.0 running on amd64; Cp1252; en_CA (nb)
> User directory: C:\Users\Gili\AppData\Roaming\NetBeans\dev
> Cache directory: C:\Users\Gili\AppData\Local\NetBeans\Cache\dev
>Reporter: Gili
>  Labels: regression
>
> 1. Invoke Generate -> equals() and hashCode()
> 2. Select any field(s)
> 3. Click "Generate"
> 4. Exception thrown:
> {code}
> java.lang.NullPointerException
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.widthQ(WidthEstimator.java:92)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.width(WidthEstimator.java:76)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.visitSelect(WidthEstimator.java:262)
>   at 
> com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:2110)
>   at 
> org.netbeans.modules.java.source.pretty.WidthEstimator.estimateWidth(WidthEstimator.java:48)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitBinary(VeryPretty.java:1703)
>   at com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1989)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printExpr(VeryPretty.java:2816)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printNoParenExpr(VeryPretty.java:2807)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitIf(VeryPretty.java:1391)
>   at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1421)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printExpr(VeryPretty.java:2816)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printStat(VeryPretty.java:2873)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printStats(VeryPretty.java:2929)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printBlock(VeryPretty.java:3011)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.printBlock(VeryPretty.java:2948)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.visitMethodDef(VeryPretty.java:1002)
>   at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:872)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.doAccept(VeryPretty.java:407)
>   at 
> org.netbeans.modules.java.source.pretty.VeryPretty.print(VeryPretty.java:276)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:3936)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffClassDef(CasualDiff.java:1086)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5215)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5109)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5037)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5008)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffList(CasualDiff.java:3854)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTopLevel(CasualDiff.java:578)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl0(CasualDiff.java:5188)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTreeImpl(CasualDiff.java:5109)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5037)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diffTree(CasualDiff.java:5020)
>   at 
> org.netbeans.modules.java.source.save.CasualDiff.diff(CasualDiff.java:346)
>   at 
> org.netbeans.api.java.source.WorkingCopy.processCurrentCompilationUnit(WorkingCopy.java:907)
>   at 
> org.netbeans.api.java.source.WorkingCopy.getChanges(WorkingCopy.java:1319)
>   at