Community
Participate
Working Groups
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)
The parameters you should pass to getMethod(String, String[]) should be {"QString;", "I"} (not {"QString;", "int"} )