Community
Participate
Working Groups
200409300800 - Open class file editor for Collection from 1.5 rt.jar. - Select method containsAll(Collection<?>) in Outline and do Edit > Copy -> Log: Error Oct 01, 2004 17:21:04.48 java.lang.IllegalArgumentException java.lang.IllegalArgumentException at org.eclipse.jdt.core.Signature.appendClassTypeSignature(Signature.java:2264) at org.eclipse.jdt.core.Signature.appendTypeSignature(Signature.java:2161) at org.eclipse.jdt.core.Signature.toCharArray(Signature.java:2130) at org.eclipse.jdt.core.Signature.toString(Signature.java:2486) at org.eclipse.jdt.internal.core.BinaryMethod.toStringName(BinaryMethod.java:364) at org.eclipse.jdt.internal.core.BinaryMethod.toStringInfo(BinaryMethod.java:341) at org.eclipse.jdt.internal.core.JavaElement.toStringWithAncestors(JavaElement.java:609) at org.eclipse.jdt.internal.core.JavaModelStatus.getMessage(JavaModelStatus.java:194) at org.eclipse.core.runtime.CoreException.<init>(CoreException.java:37) at org.eclipse.jdt.core.JavaModelException.<init>(JavaModelException.java:70) at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:533) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:555) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:291) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:277) at org.eclipse.jdt.internal.core.JavaElement.exists(JavaElement.java:144) at org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory$ReorgPolicy.canEnable(ReorgPolicyFactory.java) at org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory$SubCuElementReorgPolicy.canEnable(ReorgPolicyFactory.java:778) at org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory$CopySubCuElementsPolicy.canEnable(ReorgPolicyFactory.java:1104) at org.eclipse.jdt.internal.corext.refactoring.reorg.CopyRefactoring.isAvailable(CopyRefactoring.java:56) at org.eclipse.jdt.internal.corext.refactoring.reorg.CopyRefactoring.create(CopyRefactoring.java:50) at org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgCopyStarter.create(ReorgCopyStarter.java:46) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction$JavaElementAndResourcePaster.canPasteOn(PasteAction.java:433) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.canOperateOn(PasteAction.java:136) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.selectionChanged(PasteAction.java:118) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:200) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.update(SelectionDispatchAction.java:114) at org.eclipse.jdt.internal.ui.refactoring.reorg.CopyToClipboardAction.doRun(CopyToClipboardAction.java:136) at org.eclipse.jdt.internal.ui.refactoring.reorg.CopyToClipboardAction.run(CopyToClipboardAction.java:124) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:212) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:188) at org.eclipse.jface.action.Action.runWithEvent(Action.java:988) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:555) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:505) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:419) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2784) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2443) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1443) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1414) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:271) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60) at java.lang.reflect.Method.invoke(Method.java:391) at org.eclipse.core.launcher.Main.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:704) at org.eclipse.core.launcher.Main.main(Main.java:688)
The method handle was wrongly created with a "Ljava.util.Collection" parameter type signature (it should have been "Ljava.util.Collection<*>;"). This is because the memento for a method with a wildcarded parameter type was not supported. Changed BinaryMethod#getHandleMemento(StringBuffer) and SourceMethod#getHandleMemento(StringBuffer) to escape the parameter type. Added regression test MementoTests#testBinaryMethodMemento4().
Verified for 3.1M3 with build I20041102