CDV ❯ Eclipse plugin throws NPE when using annotation to mark DSO roots
-
Bug
-
Status: Closed
-
2 Major
-
Resolution: Fixed
-
Eclipse Plugin
-
-
kkannaiy
-
Reporter: hmak
-
September 05, 2008
-
0
-
Watchers: 0
-
February 12, 2013
-
October 27, 2008
Attachments
Description
Eclipse plugin throws NPE when using annotation to mark DSO roots
Reproduce case:
-
Compile + run Eclipse project using attached sources
-
Output on successive runs will be:
counter is: 1 counter is: 2 ...
Indicates that Shared.s_instance is indeed a DSO root
-
Close Shared.java tab
-
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.
Comments
Howard Mak 2008-09-09
Howard Mak 2008-09-09
Also, specific use case problem affects is: use of @Root annotation from tim-annotations (http://forge.terracotta.org/releases/projects/tim-annotations/)
Howard Mak 2008-09-11
Error also prevents disabling of “Automatically start the Terracotta Server when necessary” for Terracotta project
Fiona OShea 2008-10-08
Isn’t this fixed in 2.7?
Kalai Kannaiyan 2008-11-03
Tested with Terracotta 2.7.1-nightly, as of 20081030-161010 (Revision 10718 by cruise@su10mo5 from 2.7), NPE is not thrown when using annotation to mark DSO roots, it is working as expected.
Steps:
- Install the eclipse plugin
- Add Terracotta Nature
- Compile + run as Terracotta DSO project using attached sources
Actual: NPE is not thrown, shared root is displayed in the admin console
Clarifications: