[jira] [Updated] (NETBEANS-4095) NPE saving Java file with type error in for-each
[ https://issues.apache.org/jira/browse/NETBEANS-4095?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Arunava Sinha updated NETBEANS-4095: Fix Version/s: 12.1 > NPE saving Java file with type error in for-each > > > Key: NETBEANS-4095 > URL: https://issues.apache.org/jira/browse/NETBEANS-4095 > Project: NetBeans > Issue Type: Bug > Components: java - Source >Affects Versions: 11.3 > Environment: Java 14, NetBeans with nbjavac plugin installed >Reporter: Eirik Bakke >Assignee: Arunava Sinha >Priority: Major > Labels: nbjavac > Fix For: 12.1 > > > If, during editing, a for-each loop appears with an incorrect pair of types, > an error dialog shows up showing a NullPointerException every time the Java > source file is saved, interrupting the user. A minimized example exhibiting > this behavior is as follows: > {code:java} > public final class CausesVisitIterableForeachLoopNPE { > public static final void main(String args[]) { > final Map someMap = null; > for (Object someVar : someMap) { } > } > } > {code} > This example causes the IDE to throw the following exception: > {noformat} > java.lang.NullPointerException > at > com.sun.tools.javac.comp.Lower.visitIterableForeachLoop(Lower.java:3275) > at com.sun.tools.javac.comp.Lower.visitForeachLoop(Lower.java:3162) > at > com.sun.tools.javac.tree.JCTree$JCEnhancedForLoop.accept(JCTree.java:1176) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2080) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70) > at > com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:167) > at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3347) > at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1036) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2080) > at > com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:150) > at > com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2538) > at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2448) > at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:882) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2080) > at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2219) > at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:788) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2080) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2099) > at > com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3813) > at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1691) > at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1532) > at > com.sun.tools.javac.api.JavacTaskImpl$2.process(JavacTaskImpl.java:574) > at > com.sun.tools.javac.api.JavacTaskImpl$Filter.run(JavacTaskImpl.java:651) > at > com.sun.tools.javac.api.JavacTaskImpl.generate(JavacTaskImpl.java:577) > [catch] at > org.netbeans.modules.java.source.nbjavac.indexing.MultiPassCompileWorker.compile(MultiPassCompileWorker.java:303) > at > org.netbeans.modules.java.source.indexing.JavaCustomIndexer.index(JavaCustomIndexer.java:361) > at > org.netbeans.modules.parsing.spi.indexing.Indexable$MyAccessor$2.run(Indexable.java:138) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runIndexer(RepositoryUpdater.java:275) > at > org.netbeans.modules.parsing.spi.indexing.Indexable$MyAccessor.index(Indexable.java:136) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doIndex(RepositoryUpdater.java:2750) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.access$800(RepositoryUpdater.java:2154) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work$1.run(RepositoryUpdater.java:2636) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work$1.run(RepositoryUpdater.java:2634) > at > org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:540) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.index(RepositoryUpdater.java:2634) > at >
[jira] [Updated] (NETBEANS-4095) NPE saving Java file with type error in for-each
[ https://issues.apache.org/jira/browse/NETBEANS-4095?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eirik Bakke updated NETBEANS-4095: -- Labels: nbjavac (was: ) > NPE saving Java file with type error in for-each > > > Key: NETBEANS-4095 > URL: https://issues.apache.org/jira/browse/NETBEANS-4095 > Project: NetBeans > Issue Type: Bug > Components: java - Source >Affects Versions: 11.3 > Environment: Java 14, NetBeans with nbjavac plugin installed >Reporter: Eirik Bakke >Priority: Major > Labels: nbjavac > > If, during editing, a for-each loop appears with an incorrect pair of types, > an error dialog shows up showing a NullPointerException every time the Java > source file is saved, interrupting the user. A minimized example exhibiting > this behavior is as follows: > {code:java} > public final class CausesVisitIterableForeachLoopNPE { > public static final void main(String args[]) { > final Map someMap = null; > for (Object someVar : someMap) { } > } > } > {code} > This example causes the IDE to throw the following exception: > {noformat} > java.lang.NullPointerException > at > com.sun.tools.javac.comp.Lower.visitIterableForeachLoop(Lower.java:3275) > at com.sun.tools.javac.comp.Lower.visitForeachLoop(Lower.java:3162) > at > com.sun.tools.javac.tree.JCTree$JCEnhancedForLoop.accept(JCTree.java:1176) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2080) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70) > at > com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:167) > at com.sun.tools.javac.comp.Lower.visitBlock(Lower.java:3347) > at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1036) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2080) > at > com.sun.tools.javac.tree.TreeTranslator.visitMethodDef(TreeTranslator.java:150) > at > com.sun.tools.javac.comp.Lower.visitMethodDefInternal(Lower.java:2538) > at com.sun.tools.javac.comp.Lower.visitMethodDef(Lower.java:2448) > at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:882) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2080) > at com.sun.tools.javac.comp.Lower.visitClassDef(Lower.java:2219) > at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:788) > at > com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2080) > at com.sun.tools.javac.comp.Lower.translate(Lower.java:2099) > at > com.sun.tools.javac.comp.Lower.translateTopLevelClass(Lower.java:3813) > at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1691) > at com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1532) > at > com.sun.tools.javac.api.JavacTaskImpl$2.process(JavacTaskImpl.java:574) > at > com.sun.tools.javac.api.JavacTaskImpl$Filter.run(JavacTaskImpl.java:651) > at > com.sun.tools.javac.api.JavacTaskImpl.generate(JavacTaskImpl.java:577) > [catch] at > org.netbeans.modules.java.source.nbjavac.indexing.MultiPassCompileWorker.compile(MultiPassCompileWorker.java:303) > at > org.netbeans.modules.java.source.indexing.JavaCustomIndexer.index(JavaCustomIndexer.java:361) > at > org.netbeans.modules.parsing.spi.indexing.Indexable$MyAccessor$2.run(Indexable.java:138) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runIndexer(RepositoryUpdater.java:275) > at > org.netbeans.modules.parsing.spi.indexing.Indexable$MyAccessor.index(Indexable.java:136) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doIndex(RepositoryUpdater.java:2750) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.access$800(RepositoryUpdater.java:2154) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work$1.run(RepositoryUpdater.java:2636) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work$1.run(RepositoryUpdater.java:2634) > at > org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:540) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.index(RepositoryUpdater.java:2634) > at > org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work$3.call(RepositoryUpdater.java:3300) > at >