[jira] [Updated] (NETBEANS-4095) NPE saving Java file with type error in for-each

2020-08-04 Thread Arunava Sinha (Jira)


 [ 
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

2020-04-15 Thread Eirik Bakke (Jira)


 [ 
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 
>