[jira] [Updated] (NETBEANS-885) NPE on invalid Java source code
[ https://issues.apache.org/jira/browse/NETBEANS-885?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eirik Bakke updated NETBEANS-885: - Labels: nbjavac (was: ) > NPE on invalid Java source code > --- > > Key: NETBEANS-885 > URL: https://issues.apache.org/jira/browse/NETBEANS-885 > Project: NetBeans > Issue Type: Bug > Components: java - Editor >Affects Versions: 9.0 > Environment: Linux, NetBeans 9.0 RC1 (and predecessors). >Reporter: Peter Nabbefeld >Assignee: Jan Lahoda >Priority: Critical > Labels: nbjavac > > I sometimes like to write some code using hints for completion like this: > package test; > import java.io.File; > public class Test { > public void test() { > File[] files = new File[0]; > for (file : files) > } > } > This results in NullPointerExceptions on editing, formatting, or even just > re-opening the file. > Additionally to bug resolution I'd like to know how to write tests for such > situations, so I'd be glad if You could append a diff for the changes. > Relevant part of stacktrace: > java.lang.NullPointerException > SEVERE [org.openide.util.Exceptions] > java.lang.NullPointerException > at > jdk.compiler/com.sun.tools.javac.tree.Pretty.visitVarDef(Pretty.java:636) > at > jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:950) > at jdk.compiler/com.sun.tools.javac.tree.Pretty.printExpr(Pretty.java:194) > at jdk.compiler/com.sun.tools.javac.tree.Pretty.printExpr(Pretty.java:209) > at jdk.compiler/com.sun.tools.javac.tree.JCTree.toString(JCTree.java:429) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl.createBreadcrumbs(BreadCrumbsNodeImpl.java:260) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.scan(BreadCrumbsNodeImpl.java:535) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.scan(BreadCrumbsNodeImpl.java:514) > at > jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90) > at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105) > at > jdk.compiler/com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:248) > at > jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1026) > at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:86) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.scan(BreadCrumbsNodeImpl.java:539) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.visitMethod(BreadCrumbsNodeImpl.java:544) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.visitMethod(BreadCrumbsNodeImpl.java:514) > at > jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:898) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3.run(BreadCrumbsNodeImpl.java:514) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3.run(BreadCrumbsNodeImpl.java:503) > at > org.netbeans.api.java.source.JavaSource$MultiTask.run(JavaSource.java:501) > at > org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586) > at > org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:130) > at > org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:114) > at > org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:181) > at > org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:178) > at > org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:153) > at > org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:335) > at > org.netbeans.modules.parsing.nb.DataObjectEnvFactory.runPriorityIO(DataObjectEnvFactory.java:118) > at > org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:67) > at > org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:178) > at > org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:81) > at > org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:451) > at > org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:422) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl.getChildren(BreadCrumbsNodeImpl.java:503) > at > org.netbeans.modules.java.navigation.BreadCrumbsScanningTask.rootAndSelection(BreadCrumbsScanningTask.java:114) > at > org.netbeans.modules.java.navigation.BreadCrumbsScanningTask.run(BreadCrumbsScanningTask.java:82) > at >
[jira] [Updated] (NETBEANS-885) NPE on invalid Java source code
[ https://issues.apache.org/jira/browse/NETBEANS-885?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Peter Nabbefeld updated NETBEANS-885: - Component/s: java - Editor > NPE on invalid Java source code > --- > > Key: NETBEANS-885 > URL: https://issues.apache.org/jira/browse/NETBEANS-885 > Project: NetBeans > Issue Type: Bug > Components: java - Editor >Affects Versions: 9.0 > Environment: Linux, NetBeans 9.0 RC1 (and predecessors). >Reporter: Peter Nabbefeld >Priority: Major > > I sometimes like to write some code using hints for completion like this: > package test; > import java.io.File; > public class Test { > public void test() { > File[] files = new File[0]; > for (file : files) > } > } > This results in NullPointerExceptions on editing, formatting, or even just > re-opening the file. > Additionally to bug resolution I'd like to know how to write tests for such > situations, so I'd be glad if You could append a diff for the changes. > Relevant part of stacktrace: > java.lang.NullPointerException > SEVERE [org.openide.util.Exceptions] > java.lang.NullPointerException > at > jdk.compiler/com.sun.tools.javac.tree.Pretty.visitVarDef(Pretty.java:636) > at > jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:950) > at jdk.compiler/com.sun.tools.javac.tree.Pretty.printExpr(Pretty.java:194) > at jdk.compiler/com.sun.tools.javac.tree.Pretty.printExpr(Pretty.java:209) > at jdk.compiler/com.sun.tools.javac.tree.JCTree.toString(JCTree.java:429) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl.createBreadcrumbs(BreadCrumbsNodeImpl.java:260) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.scan(BreadCrumbsNodeImpl.java:535) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.scan(BreadCrumbsNodeImpl.java:514) > at > jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90) > at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105) > at > jdk.compiler/com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:248) > at > jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1026) > at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:86) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.scan(BreadCrumbsNodeImpl.java:539) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.visitMethod(BreadCrumbsNodeImpl.java:544) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.visitMethod(BreadCrumbsNodeImpl.java:514) > at > jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:898) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3.run(BreadCrumbsNodeImpl.java:514) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3.run(BreadCrumbsNodeImpl.java:503) > at > org.netbeans.api.java.source.JavaSource$MultiTask.run(JavaSource.java:501) > at > org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586) > at > org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:130) > at > org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:114) > at > org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:181) > at > org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:178) > at > org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:153) > at > org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:335) > at > org.netbeans.modules.parsing.nb.DataObjectEnvFactory.runPriorityIO(DataObjectEnvFactory.java:118) > at > org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:67) > at > org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:178) > at > org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:81) > at > org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:451) > at > org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:422) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl.getChildren(BreadCrumbsNodeImpl.java:503) > at > org.netbeans.modules.java.navigation.BreadCrumbsScanningTask.rootAndSelection(BreadCrumbsScanningTask.java:114) > at > org.netbeans.modules.java.navigation.BreadCrumbsScanningTask.run(BreadCrumbsScanningTask.java:82) > at > org.netbeans.modules.parsing.impl.TaskProcessor.callParserResultTask(TaskProcessor.java:561) > [catch] at >
[jira] [Updated] (NETBEANS-885) NPE on invalid Java source code
[ https://issues.apache.org/jira/browse/NETBEANS-885?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Peter Nabbefeld updated NETBEANS-885: - Priority: Critical (was: Major) > NPE on invalid Java source code > --- > > Key: NETBEANS-885 > URL: https://issues.apache.org/jira/browse/NETBEANS-885 > Project: NetBeans > Issue Type: Bug > Components: java - Editor >Affects Versions: 9.0 > Environment: Linux, NetBeans 9.0 RC1 (and predecessors). >Reporter: Peter Nabbefeld >Priority: Critical > > I sometimes like to write some code using hints for completion like this: > package test; > import java.io.File; > public class Test { > public void test() { > File[] files = new File[0]; > for (file : files) > } > } > This results in NullPointerExceptions on editing, formatting, or even just > re-opening the file. > Additionally to bug resolution I'd like to know how to write tests for such > situations, so I'd be glad if You could append a diff for the changes. > Relevant part of stacktrace: > java.lang.NullPointerException > SEVERE [org.openide.util.Exceptions] > java.lang.NullPointerException > at > jdk.compiler/com.sun.tools.javac.tree.Pretty.visitVarDef(Pretty.java:636) > at > jdk.compiler/com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:950) > at jdk.compiler/com.sun.tools.javac.tree.Pretty.printExpr(Pretty.java:194) > at jdk.compiler/com.sun.tools.javac.tree.Pretty.printExpr(Pretty.java:209) > at jdk.compiler/com.sun.tools.javac.tree.JCTree.toString(JCTree.java:429) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl.createBreadcrumbs(BreadCrumbsNodeImpl.java:260) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.scan(BreadCrumbsNodeImpl.java:535) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.scan(BreadCrumbsNodeImpl.java:514) > at > jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90) > at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105) > at > jdk.compiler/com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:248) > at > jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1026) > at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:86) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.scan(BreadCrumbsNodeImpl.java:539) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.visitMethod(BreadCrumbsNodeImpl.java:544) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3$1.visitMethod(BreadCrumbsNodeImpl.java:514) > at > jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:898) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3.run(BreadCrumbsNodeImpl.java:514) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl$3.run(BreadCrumbsNodeImpl.java:503) > at > org.netbeans.api.java.source.JavaSource$MultiTask.run(JavaSource.java:501) > at > org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586) > at > org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:130) > at > org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:114) > at > org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:181) > at > org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:178) > at > org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:153) > at > org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:335) > at > org.netbeans.modules.parsing.nb.DataObjectEnvFactory.runPriorityIO(DataObjectEnvFactory.java:118) > at > org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:67) > at > org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:178) > at > org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:81) > at > org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:451) > at > org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:422) > at > org.netbeans.modules.java.navigation.BreadCrumbsNodeImpl.getChildren(BreadCrumbsNodeImpl.java:503) > at > org.netbeans.modules.java.navigation.BreadCrumbsScanningTask.rootAndSelection(BreadCrumbsScanningTask.java:114) > at > org.netbeans.modules.java.navigation.BreadCrumbsScanningTask.run(BreadCrumbsScanningTask.java:82) > at > org.netbeans.modules.parsing.impl.TaskProcessor.callParserResultTask(TaskProcessor.java:561) > [catch] at >