Bug 69591 - Failing Test due to IAE when copying CU without package decl statement
Summary: Failing Test due to IAE when copying CU without package decl statement
Status: RESOLVED WORKSFORME
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 M2   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-08 08:45 EDT by Markus Keller CLA
Modified: 2004-09-23 11:53 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 Markus Keller CLA 2004-07-08 08:45:15 EDT
N-N20040708-200407080010: Failing test case
org.eclipse.jdt.ui.tests.refactoring.RenameTypeTests.testFail9().

Steps:
- create java project with A.java in package p with contents:
"class A {
	class B{}
}" (without package declaration statement)
- select A.java in Package Explorer and try to rename it to B (continue when
error message is shown)

=> IAE in IComilationUnit.rename(..):

Error Jul 08, 2004 14:14:39.469 Attempt to insert null sibling
java.lang.IllegalArgumentException: Attempt to insert null sibling
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.Throwable.<init>(Throwable.java)
	at org.eclipse.jdt.internal.core.jdom.DOMNode.insertSibling(DOMNode.java:668)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.updatePackageStatement(CopyResourceElementsOperation.java:626)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.updatedContent(CopyResourceElementsOperation.java:595)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processCompilationUnitResource(CopyResourceElementsOperation.java:232)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElement(CopyResourceElementsOperation.java:372)
	at
org.eclipse.jdt.internal.core.MultiOperation.processElements(MultiOperation.java:160)
	at
org.eclipse.jdt.internal.core.CopyResourceElementsOperation.processElements(CopyResourceElementsOperation.java:390)
	at
org.eclipse.jdt.internal.core.MultiOperation.executeOperation(MultiOperation.java:90)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:744)
	at org.eclipse.jdt.internal.core.JavaModel.rename(JavaModel.java:302)
	at org.eclipse.jdt.internal.core.CompilationUnit.rename(CompilationUnit.java:1114)
	at
org.eclipse.jdt.internal.corext.refactoring.changes.RenameCompilationUnitChange.doRename(RenameCompilationUnitChange.java)
	at
org.eclipse.jdt.internal.corext.refactoring.AbstractJavaElementRenameChange.perform(AbstractJavaElementRenameChange.java:67)
	at
org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:262)
	at
org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange.access$0(DynamicValidationStateChange.java:1)
	at
org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange$1.run(DynamicValidationStateChange.java:76)
	at
org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:34)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673)
	at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3312)
	at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3269)
	at
org.eclipse.jdt.internal.corext.refactoring.changes.DynamicValidationStateChange.perform(DynamicValidationStateChange.java:79)
	at
org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:262)
	at
org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:228)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1693)
	at
org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:273)
	at
org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.access$4(UIPerformChangeOperation.java:1)
	at
org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$1.run(UIPerformChangeOperation.java:64)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java)
	at
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java)
	at
org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run(RefactoringWizardDialog2.java:282)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizard.internalPerformFinish(RefactoringWizard.java:539)
	at
org.eclipse.ltk.internal.ui.refactoring.ErrorWizardPage.performFinish(ErrorWizardPage.java:139)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizard.performFinish(RefactoringWizard.java:605)
	at
org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.okPressed(RefactoringWizardDialog2.java:415)
	at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:365)
	at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:506)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java)
	at org.eclipse.jface.window.Window.open(Window.java:648)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:125)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at
org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:138)
	at
org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:40)
	at
org.eclipse.jdt.internal.ui.refactoring.UserInterfaceStarter.activate(UserInterfaceStarter.java:54)
	at
org.eclipse.jdt.internal.ui.refactoring.reorg.RenameUserInterfaceStarter.activate(RenameUserInterfaceStarter.java:113)
	at org.eclipse.jdt.ui.refactoring.RenameSupport.openDialog(RenameSupport.java:108)
	at
org.eclipse.jdt.internal.ui.refactoring.actions.RenameJavaElementAction.run(RenameJavaElementAction.java:175)
	at
org.eclipse.jdt.internal.ui.refactoring.actions.RenameJavaElementAction.run(RenameJavaElementAction.java:96)
	at org.eclipse.jdt.ui.actions.RenameAction.run(RenameAction.java:116)
	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:881)
	at org.eclipse.ui.actions.RetargetAction.runWithEvent(RetargetAction.java:212)
	at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:211)
	at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:141)
	at org.eclipse.ui.internal.commands.Command.execute(Command.java:132)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:471)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:889)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:930)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:548)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyboard.java:496)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(WorkbenchKeyboard.java:261)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java)
	at org.eclipse.swt.widgets.Display.filterEvent(Display.java)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
	at org.eclipse.swt.widgets.Control.traverse(Control.java:2723)
	at org.eclipse.swt.widgets.Control.translateMnemonic(Control.java:2564)
	at org.eclipse.swt.widgets.Composite.translateMnemonic(Composite.java:540)
	at org.eclipse.swt.widgets.Control.translateMnemonic(Control.java:2582)
	at org.eclipse.swt.widgets.Display.translateMnemonic(Display.java:3191)
	at org.eclipse.swt.widgets.Display.filterMessage(Display.java)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
	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:183)
	at org.eclipse.core.launcher.Main.run(Main.java:644)
	at org.eclipse.core.launcher.Main.main(Main.java:628)
Comment 1 Markus Keller CLA 2004-07-08 09:54:41 EDT
The two failing test cases in org.eclipse.jdt.ui.tests.reorg.MoveTest produce a
similar stacktrace.
Comment 2 Olivier Thomann CLA 2004-07-08 11:19:12 EDT
Are these two new tests or is this a regression?
Comment 3 Markus Keller CLA 2004-07-08 11:26:16 EDT
It's a regression (tests were already in 3.0).

I corrected the MoveTests a minute ago such that they show the real exception
now. Before, the original exeption was not apparent due to an exception thrown
in the finally block (trying to delete inexistent files).
Comment 4 Frederic Fusier CLA 2004-07-08 11:47:44 EDT
Do you mean that without change in MoveTests, testFail9 passes in RenameTypeTests?

However, I cannot reproduce on my box using last HEAD contents: all tests of
RenameTypeTests pass...
I cannnot reproduce it either executing your scenario: I can rename A to B
without any problem
Comment 5 Markus Keller CLA 2004-07-08 15:28:44 EDT
All the tests I was talking about were failing in the said N-build. The change I
dit in MoveTest was only to reveal the real error cause and doesnt affect other
tests.

However, the problem seems to be fixed in HEAD now due to Jerome's change in
CopyResourceElementsOperation (rev 1.85).
Comment 6 David Audel CLA 2004-09-23 11:52:43 EDT
Reopen to change status
Comment 7 David Audel CLA 2004-09-23 11:53:07 EDT
Change status to WORSFORME