Bug 58147 - IllegalArgumentException when querying an IMethod (SourceMethod) object if it exists
Summary: IllegalArgumentException when querying an IMethod (SourceMethod) object if it...
Status: RESOLVED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.0 M9   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-04-12 11:20 EDT by Maximilian Stoerzer CLA
Modified: 2004-05-18 12:46 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 Maximilian Stoerzer CLA 2004-04-12 11:20:18 EDT
Platform: WinXP Professional, JDK Sun 1.4.3_02, Eclipse 3.0M8
toString of SourceMethod object results in: "com.sun.jdi.InvocationException
occurred invoking method."
calling "exists()" results in a java.lang.IllegalArgumentException

The method has been obtained from an IType object using "type.getMethod(name,
params);"

Type object (toString representation):
class Course [in [Working copy] Course.java [in university [in <project root>
[in ToyUniv]]]]
  String id
  int credits
  Set students
  Professor prof
  <initializer #1>
  Course(String, int)
  void setProfessor(Professor)
  void addStudent(Student)
  int getCredits()

Requested method (Course(String, int)):
  name : Course
  paras:[QString;, int]

Exception follows:
java.lang.IllegalArgumentException
	at org.eclipse.jdt.core.Signature.toCharArray(Signature.java:1288)
	at org.eclipse.jdt.core.Signature.toString(Signature.java:1400)
	at
org.eclipse.jdt.internal.core.SourceMethod.toStringParameters(SourceMethod.java:276)
	at org.eclipse.jdt.internal.core.SourceMethod.toStringInfo(SourceMethod.java:253)
	at
org.eclipse.jdt.internal.core.JavaElement.toStringWithAncestors(JavaElement.java:610)
	at
org.eclipse.jdt.internal.core.JavaModelStatus.getMessage(JavaModelStatus.java:194)
	at org.eclipse.core.runtime.CoreException.<init>(CoreException.java:35)
	at org.eclipse.jdt.core.JavaModelException.<init>(JavaModelException.java:67)
	at
org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:532)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:556)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:280)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:266)
	at org.eclipse.jdt.internal.core.JavaElement.exists(JavaElement.java:137)
	at
org.eclipse.chianti.analyzer.atomicchange.ChangeMethodChange.getAffectedItemPost(ChangeMethodChange.java:88)
	at
org.eclipse.chianti.dynamic.gui.ChiantiMarkerManager.getLocations(ChiantiMarkerManager.java:150)
	at
org.eclipse.chianti.dynamic.gui.ChiantiMarkerManager.createUntestedChangeMarkers(ChiantiMarkerManager.java:72)
	at
org.eclipse.chianti.dynamic.gui.ChiantiMarkerManager.access$2(ChiantiMarkerManager.java:64)
	at
org.eclipse.chianti.dynamic.gui.ChiantiMarkerManager$1.run(ChiantiMarkerManager.java:47)
	at
org.eclipse.chianti.dynamic.gui.ChiantiMarkerManager.postTestData(ChiantiMarkerManager.java:52)
	at org.eclipse.chianti.dynamic.chianti.ModelBuilder$1.run(ModelBuilder.java:405)
	at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:107)
	at org.eclipse.ui.internal.UISynchronizer$1.run(UISynchronizer.java:33)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:106)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2555)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2260)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1562)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1536)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:257)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:90)
	at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:277)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:239)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:117)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:267)
	at org.eclipse.core.launcher.Main.run(Main.java:692)
	at org.eclipse.core.launcher.Main.main(Main.java:676)
Comment 1 Jerome Lanneluc CLA 2004-05-18 12:46:33 EDT
The parameters you should pass to getMethod(String, String[]) should be 
{"QString;", "I"} (not {"QString;", "int"} )