Community
Participate
Working Groups
3.2RC2 (was ok in 3.2M6) After rebuilding with 3.2RC2 I have one file that fails to compile with a variety of JDT errors. Attempting to locate it, I created a CopyOf...; Error did not appear in copy. I refactored CopyOf... to ...2; Error moved from ... to ...2. Deleted ...2 and error returned to ... Looks like it will be hard to do a small repro. The stack traces are: Error in JDT Core during AST creation or Exception occurred during problem detection: ----------------------------------- SOURCE BEGIN ------------------------------------- or Problems occurred when invoking code from plug-in: "org.eclipse.jdt.ui". java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:402) at org.eclipse.jdt.internal.compiler.lookup.Scope.mostSpecificMethodBinding(Scope.java:3247) at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1125) at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:2020) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:384) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:344) at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:202) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:432) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:179) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:403) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1054) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1101) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:353) at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:882) at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:508) at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:833) at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:631) at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider$1.run(ASTProvider.java:605) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.createAST(ASTProvider.java:600) at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:514) at org.eclipse.jdt.internal.ui.text.java.hover.NLSStringHover.getHoverInfo(NLSStringHover.java:86) at org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.getHoverInfo(BestMatchHover.java:102) at org.eclipse.jdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy.getHoverInfo(JavaEditorTextHoverProxy.java:69) at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:160) Error in JDT Core during reconcile Java Model Exception: java.lang.NullPointerException at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:226) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:248) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.makeConsistent(ReconcileWorkingCopyOperation.java:152) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:71) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:779) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1123) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1095) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:103) 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.reconcile(JavaReconcilingStrategy.java:145) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75) at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:342) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204) org.eclipse.jdt.core.JavaModelException[1005]: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:402) at org.eclipse.jdt.internal.compiler.lookup.Scope.mostSpecificMethodBinding(Scope.java:3247) at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1125) at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:2020) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:384) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:344) at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:202) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:432) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:179) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:403) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1054) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1101) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:353) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:650) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:689) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:176) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:248) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.makeConsistent(ReconcileWorkingCopyOperation.java:152) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:71) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:779) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1123) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1095) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:103) 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.reconcile(JavaReconcilingStrategy.java:145) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75) at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:342) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204) Caused by: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.lookup.Scope.computeCompatibleMethod(Scope.java:402) at org.eclipse.jdt.internal.compiler.lookup.Scope.mostSpecificMethodBinding(Scope.java:3247) at org.eclipse.jdt.internal.compiler.lookup.Scope.findMethod(Scope.java:1125) at org.eclipse.jdt.internal.compiler.lookup.Scope.getMethod(Scope.java:2020) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:384) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:344) at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:202) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:432) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:179) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:403) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1054) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1101) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:353) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:650) at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:689) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:176) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:248) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.makeConsistent(ReconcileWorkingCopyOperation.java:152) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:71) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:779) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1123) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1095) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:103) 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.reconcile(JavaReconcilingStrategy.java:145) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75) at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:342) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204)
Could you please try with 3.2 RC4 ?
This would indicate a method with null return type: protected final MethodBinding computeCompatibleMethod(MethodBinding method, TypeBinding[] arguments, InvocationSite invocationSite) { TypeBinding[] genericTypeArguments = invocationSite.genericTypeArguments(); TypeBinding[] parameters = method.parameters; TypeVariableBinding[] typeVariables = method.typeVariables; if (parameters == arguments >>>>>>>> && (method.returnType.tagBits & TagBits.HasTypeVariable) == 0
Please provide steps to reproduce, then reopen.
Reproduced using RC4. A workspace that reproduces the bug may be found at /download.eclipse.org/technology/gmt/umlx/temp/UMLX.Workspace3.2RC4.zip it uses Windows XP SP2 latest updates Java 1.5.0_06 EMF 2.2.0RC2a GEF 3.2RC2a EMFT 1.0RC2 (at most ocl needed) Load workspace and let auto-build fail.
Reproduced issue at: NodeElementGraphicalNodeEditPolicy.java Took the workspace Imported draw2d and gef plugins Auto recompilation found it.
Looks bad. We are trying to tiebreak between a method and a problem method... (ambiguous)
Problem occurs at msg send: linkEditPart.getViewer() where receiver type is: GLinkElementView<capture-of ?,capture-of ?> Problems come from interface lookups, which aren't checking that the found method is a valid one, before attempting to tiebreak. There are 3 instances of this issue.
Given this is a regression introduced in RC2, and it was found in about 2 weeks; I would be enclined to address it into RC5. The fix is simple enough, simply an omission when rewriting #findMethod(...), and doesn't change the logic. I will attach a patch, and ask Kent to review it, since he owns this code. +1 for 3.2RC5
Tim - pls cast your vote for addressing it in 3.2RC5
Kent - pls review the patch
Martin - pls vote
Created attachment 41871 [details] Proposed patch Patch adding 'method.isValidBinding()' in 3 places, where interface methods are being considered for merging.
Testcase inferred from provided workspace: public class X { void bar(GLinkElementView<?,?> g) { g.getViewer(); } } abstract class GLinkElementView<M,CM> extends AbstractLinkView<M> {} abstract class AbstractLinkView<M> extends AbstractConnectionEditPart implements ILinkViewElement, IModelChangeListener { @Override public SheetViewer getViewer() { return null; } } abstract class AbstractConnectionEditPart extends AbstractGraphicalEditPart implements ConnectionEditPart {} abstract class AbstractGraphicalEditPart extends AbstractEditPart implements GraphicalEditPart {} abstract class AbstractEditPart implements EditPart/*, RequestConstants*/ { public EditPartViewer getViewer() { return null; } } interface ILinkViewElement extends INodeViewElement { public ISheetViewer getViewer(); } class SheetViewer implements ISheetViewer {} interface ISheetViewer {} interface EditPart { EditPartViewer getViewer(); } interface ConnectionEditPart extends GraphicalEditPart {} interface GraphicalEditPart extends EditPart {} interface EditPartViewer {} interface IModelChangeListener {} interface INodeViewElement { public ISheetViewer getViewer(); }
Added GenericTypeTest#test0987&0988 + LookupTest#test072
Patch looks good.
Mike - pls vote for this one.
+1
Darin - will you vote for this one ?
+1, regression should be addressed
John - pls cast your vote
Excellent, got enough votes now. Released for 3.2RC5
Verified with I20060519-0010 for 3.2RC5