[jira] [Commented] (NETBEANS-251) Generate hashCode/equals() throws NPE
[ 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
[ 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
[ 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
[ 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