Bug 75466 - [1.5] IAE in JavaElement.exists() for Collection<E>#containsAll(Collection<?>)
Summary: [1.5] IAE in JavaElement.exists() for Collection<E>#containsAll(Collection<?>)
Status: VERIFIED FIXED
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.1 M3   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-10-01 11:35 EDT by Markus Keller CLA
Modified: 2004-11-04 04:48 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Keller CLA 2004-10-01 11:35:23 EDT
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)
Comment 1 Jerome Lanneluc CLA 2004-10-04 10:50:58 EDT
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().
Comment 2 David Audel CLA 2004-11-04 04:48:32 EST
Verified for 3.1M3 with build I20041102