Eirik Bakke created NETBEANS-4384: ------------------------------------- Summary: Assertion error ("Invalid pool entry") in javac when accessing inaccessible field in enclosing class Key: NETBEANS-4384 URL: https://issues.apache.org/jira/browse/NETBEANS-4384 Project: NetBeans Issue Type: Bug Components: java - Compiler Environment: NetBeans 11.3 on Java 13 with nbjavac plugin installed Reporter: Eirik Bakke
The following example, where a field in an enclosing class is referenced from a method in an inner static class (e.g. during editing, before the user has removed the "static" keyword) causes an assertion error in javac: {code:java} public class TestClass { Object someField; private static class Foo { public void someMethod() { System.out.println(someField); } } } {code} The error, which pops up consistently every time, is as follows: {noformat} java.lang.AssertionError: Invalid pool entry at com.sun.tools.javac.code.Type.poolTag(Type.java:134) at com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeConstant(PoolWriter.java:362) at com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded(PoolWriter.java:353) at com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.access$000(PoolWriter.java:331) at com.sun.tools.javac.jvm.PoolWriter.putMember(PoolWriter.java:125) at com.sun.tools.javac.jvm.Code.emitop2(Code.java:1004) at com.sun.tools.javac.jvm.Items$MemberItem.load(Items.java:518) at com.sun.tools.javac.jvm.Gen.genArgs(Gen.java:889) at com.sun.tools.javac.jvm.Gen.visitApply(Gen.java:1855) at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1743) at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:864) at com.sun.tools.javac.jvm.Gen.visitExec(Gen.java:1723) at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1529) at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:601) at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:636) at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:622) at com.sun.tools.javac.jvm.Gen.genStats(Gen.java:673) at com.sun.tools.javac.jvm.Gen.visitBlock(Gen.java:1084) at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1036) at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:601) at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:636) at com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:954) at com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:917) at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:882) at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:601) at com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2398) at com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:786) at com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1749) 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 org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work$3.call(RepositoryUpdater.java:3255) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$4.run(RepositoryUpdater.java:2127) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:279) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2123) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2104) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.access$1500(RepositoryUpdater.java:136) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.scanFiles(RepositoryUpdater.java:3255) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$FileListWork.getDone(RepositoryUpdater.java:3785) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doTheWork(RepositoryUpdater.java:3420) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task._run(RepositoryUpdater.java:6183) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.access$4300(RepositoryUpdater.java:5834) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2$1.run(RepositoryUpdater.java:6099) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:279) at org.netbeans.modules.parsing.impl.RunWhenScanFinishedSupport.performScan(RunWhenScanFinishedSupport.java:83) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6095) at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6091) 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.indexing.RepositoryUpdater$Task.run(RepositoryUpdater.java:6091) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418) at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45) at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033) {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists