Bug 94096 - [search] NPE when searching for method callers
Summary: [search] NPE when searching for method callers
Status: RESOLVED WORKSFORME
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 3.1 RC1   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-09 07:09 EDT by Max Gilead CLA
Modified: 2005-05-17 11:07 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Max Gilead CLA 2005-05-09 07:09:02 EDT
Error when searching for method callers. Method signature: public Foo(String a,
Bar[] b)

Message:
An internal error occurred during: "Java Search".

Stack trace:
java.lang.NullPointerException
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.createHandle(MatchLocator.java:543)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:1719)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2039)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator$LocalDeclarationVisitor.visit(MatchLocator.java:148)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1185)
at
org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.traverse(QualifiedAllocationExpression.java:386)
at
org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.traverse(FieldDeclaration.java:281)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:1867)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2028)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:1842)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:1378)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:929)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:968)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1085)
at
org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
at
org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:208)
at
org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:394)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:532)
at org.eclipse.jdt.internal.ui.search.JavaSearchQuery.run(JavaSearchQuery.java:131)
at
org.eclipse.search2.internal.ui.InternalSearchUI$InternalSearchJob.run(InternalSearchUI.java:93)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:67)

Session data:
eclipse.buildId=I20050401-1645
java.version=1.5.0
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86


Before it a warning is issued, but only immediately after Eclipse starts.
Message:
Skipping builder org.eclipse.ve.java.core.vebuilder for project Fast. Either the
builder is missing from the install, or it belongs to a project nature that is
missing or disabled.

No stack trace.


I think I should clean that warning, but I believe that error shouldn't happen
anyway.

The problem is reproducible and I'm ready to perform additional tests when
requested.
Comment 1 Frederic Fusier CLA 2005-05-09 07:19:32 EDT
Was it a string pattern search (ie. using search dialog) or an element pattern
search (ie. using popup-menus)?
Would it be possible to make a try with a more recent integration build
(I20050506-1600 would be ideal)?
Thanks
Comment 2 Max Gilead CLA 2005-05-09 07:40:42 EDT
I tried to search for a method callers using keyboard shortcut (Ctrl+Shift+G),
but calling it from menu (Search->References->Workspace) gives the same error.
Using eclipse-SDK-N20050509-0010-linux-gtk.tar.gz :

java.lang.NullPointerException
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.createHandle(MatchLocator.java:536)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:1730)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2107)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator$LocalDeclarationVisitor.visit(MatchLocator.java:150)
at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1187)
at
org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.traverse(QualifiedAllocationExpression.java:387)
at
org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.traverse(FieldDeclaration.java:281)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:1937)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:2096)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.reportMatching(MatchLocator.java:1912)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:1392)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:922)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:963)
at
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1080)
at
org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
at
org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:208)
at
org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:421)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:532)
at org.eclipse.jdt.internal.ui.search.JavaSearchQuery.run(JavaSearchQuery.java:135)
at
org.eclipse.search2.internal.ui.InternalSearchUI$InternalSearchJob.run(InternalSearchUI.java:93)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:67)

No session data.
Comment 3 Frederic Fusier CLA 2005-05-09 14:19:32 EDT
I got some problem to reproduce this NPE.
Perhaps may you try to create a simple test case to help me to get it?

The only thing I get is an IllegalArgumentException in
Signature.getParameterCount(char[]) when searching reference to
Foo(String,Bar[]) in following test case:
X.java:
  public class X {
	void foo() {
		new Test().Foo("", null);
	}
  }
Test.java:
  public class Test {
	public Foo(String a, Bar[] b) {}
  }

  class Bar {}

Note that I get no error when I launch search from Test.java, IAE only happens
when I start search from X.java selecting message send Foo...

Note also that your method declaration is not a valid as it misses return
type... I guess problem surely comes from here...

Any other hints on this will be appreciated, I continue to investigate further...
Comment 4 Frederic Fusier CLA 2005-05-17 11:07:16 EDT
IAE still happens with 3.1 M7 but was a duplicate of bug 94398 (fixed in last
nightly build N20050517-0010).
So, currently consider your bug as not reproducible and close as WORKSFORME.
Please reopen with a more detailed test case if you still get it, thx