Eclipse plugin throws NPE when using annotation to mark DSO roots -----------------------------------------------------------------
Key: CDV-887 URL: https://jira.terracotta.org/jira//browse/CDV-887 Project: Community Development Issue Type: Bug Components: Eclipse Plugin Affects Versions: 2.6.4 Reporter: Howard Mak Assignee: Issue Review Board Attachments: Shared.java, tc-config.xml Eclipse plugin throws NPE when using annotation to mark DSO roots Reproduce case: --------------- 1. Compile + run Eclipse project using attached sources 2. Output on successive runs will be: counter is: 1 counter is: 2 ... Indicates that Shared.s_instance is indeed a DSO root 3. Close Shared.java tab 4. Open Shared.java Error logs will show: Error Exception occurred in listener of Java element change notification java.lang.NullPointerException at org.terracotta.dso.ClassInfoFactory.getClassInfo(ClassInfoFactory.java:40) at org.terracotta.dso.JavaModelFieldInfo.getType(JavaModelFieldInfo.java:32) at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:488) at com.tc.aspectwerkz.expression.ast.ASTFieldPattern.jjtAccept(ASTFieldPattern.java:28) at com.tc.aspectwerkz.expression.ExpressionVisitor.visitAnnotatedNode(ExpressionVisitor.java:1016) at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:171) at com.tc.aspectwerkz.expression.ast.ASTGet.jjtAccept(ASTGet.java:22) at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:100) at com.tc.aspectwerkz.expression.ast.ASTExpression.jjtAccept(ASTExpression.java:22) at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:88) at com.tc.aspectwerkz.expression.ExpressionVisitor.match(ExpressionVisitor.java:74) at org.terracotta.dso.PatternHelper.matchesField(PatternHelper.java:72) at org.terracotta.dso.ConfigurationHelper.isRoot(ConfigurationHelper.java:1234) at org.terracotta.dso.ConfigurationHelper.isRoot(ConfigurationHelper.java:1248) at org.terracotta.dso.CompilationUnitVisitor.visit(CompilationUnitVisitor.java:435) at org.eclipse.jdt.core.dom.VariableDeclarationFragment.accept0(VariableDeclarationFragment.java:220) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546) at org.eclipse.jdt.core.dom.FieldDeclaration.accept0(FieldDeclaration.java:286) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546) at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:483) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546) at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:213) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476) at org.terracotta.dso.CompilationUnitVisitor$InspectionAction.run(CompilationUnitVisitor.java:191) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797) at org.terracotta.dso.CompilationUnitVisitor.inspect(CompilationUnitVisitor.java:167) at org.terracotta.dso.TcPlugin.inspect(TcPlugin.java:1411) at org.terracotta.dso.ElementChangedListener.elementChanged(ElementChangedListener.java:51) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1552) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1542) at org.eclipse.jdt.internal.core.DeltaProcessor.fireReconcileDelta(DeltaProcessor.java:1395) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1350) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:761) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:780) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1169) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:101) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:176) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:122) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:103) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:362) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:170) and Error Problems occurred when invoking code from plug-in: "org.eclipse.jdt.core". java.lang.NullPointerException at org.terracotta.dso.ClassInfoFactory.getClassInfo(ClassInfoFactory.java:40) at org.terracotta.dso.JavaModelFieldInfo.getType(JavaModelFieldInfo.java:32) at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:488) at com.tc.aspectwerkz.expression.ast.ASTFieldPattern.jjtAccept(ASTFieldPattern.java:28) at com.tc.aspectwerkz.expression.ExpressionVisitor.visitAnnotatedNode(ExpressionVisitor.java:1016) at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:171) at com.tc.aspectwerkz.expression.ast.ASTGet.jjtAccept(ASTGet.java:22) at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:100) at com.tc.aspectwerkz.expression.ast.ASTExpression.jjtAccept(ASTExpression.java:22) at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:88) at com.tc.aspectwerkz.expression.ExpressionVisitor.match(ExpressionVisitor.java:74) at org.terracotta.dso.PatternHelper.matchesField(PatternHelper.java:72) at org.terracotta.dso.ConfigurationHelper.isRoot(ConfigurationHelper.java:1234) at org.terracotta.dso.ConfigurationHelper.isRoot(ConfigurationHelper.java:1248) at org.terracotta.dso.CompilationUnitVisitor.visit(CompilationUnitVisitor.java:435) at org.eclipse.jdt.core.dom.VariableDeclarationFragment.accept0(VariableDeclarationFragment.java:220) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546) at org.eclipse.jdt.core.dom.FieldDeclaration.accept0(FieldDeclaration.java:286) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546) at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:483) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546) at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:213) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476) at org.terracotta.dso.CompilationUnitVisitor$InspectionAction.run(CompilationUnitVisitor.java:191) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797) at org.terracotta.dso.CompilationUnitVisitor.inspect(CompilationUnitVisitor.java:167) at org.terracotta.dso.TcPlugin.inspect(TcPlugin.java:1411) at org.terracotta.dso.ElementChangedListener.elementChanged(ElementChangedListener.java:51) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1552) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1542) at org.eclipse.jdt.internal.core.DeltaProcessor.fireReconcileDelta(DeltaProcessor.java:1395) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1350) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:761) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:780) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1169) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:101) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:176) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:122) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:103) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:362) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:170) Also, am not sure how, but after some series of interactions w/ Eclipse, Eclipse will display a "NullPointerException" error in a error/warning dialog box. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://jira.terracotta.org/jira//secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira _______________________________________________ tc-dev mailing list tc-dev@lists.terracotta.org http://lists.terracotta.org/mailman/listinfo/tc-dev