Community
Participate
Working Groups
Some, maybe all refactorings (e.g. move class) don't work with some project names. For example a project name like "Test (AB)" causes the following stack trace, if I try to move a class: java.lang.NullPointerException at org.eclipse.jdt.internal.corext.refactoring.changes.MoveCompilationUnitChange.g etName(MoveCompilationUnitChange.java:40) at org.eclipse.jdt.internal.ui.refactoring.ChangeElementLabelProvider.getText (ChangeElementLabelProvider.java:77) at org.eclipse.jface.viewers.TreeViewer.doUpdateItem(TreeViewer.java:95) at org.eclipse.jdt.internal.ui.refactoring.ChangeElementTreeViewer.doUpdateItem (ChangeElementTreeViewer.java:56) at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run (AbstractTreeViewer.java:77) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:1018) at org.eclipse.core.runtime.Platform.run(Platform.java:461) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem (AbstractTreeViewer.java:457) at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run (StructuredViewer.java:119) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:1018) at org.eclipse.core.runtime.Platform.run(Platform.java:461) at org.eclipse.jface.viewers.StructuredViewer.updateItem (StructuredViewer.java:1263) at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem (AbstractTreeViewer.java:371) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run (AbstractTreeViewer.java:351) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren (AbstractTreeViewer.java:337) at org.eclipse.jface.viewers.AbstractTreeViewer$5.run (AbstractTreeViewer.java:795) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection (StructuredViewer.java:796) at org.eclipse.jface.viewers.CheckboxTreeViewer.preservingSelection (CheckboxTreeViewer.java:341) at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged (AbstractTreeViewer.java:785) at org.eclipse.jdt.internal.ui.refactoring.ChangeElementTreeViewer.inputChanged (ChangeElementTreeViewer.java:50) at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:238) at org.eclipse.jface.viewers.StructuredViewer.setInput (StructuredViewer.java:983) at org.eclipse.jdt.internal.ui.refactoring.PreviewWizardPage.setTreeViewerInput (PreviewWizardPage.java:308) at org.eclipse.jdt.internal.ui.refactoring.PreviewWizardPage.createStandardPreview Page(PreviewWizardPage.java:233) at org.eclipse.jdt.internal.ui.refactoring.PreviewWizardPage.createControl (PreviewWizardPage.java:205) at org.eclipse.jdt.internal.ui.refactoring.RefactoringWizardDialog2.previewPressed (RefactoringWizardDialog2.java:431) at org.eclipse.jdt.internal.ui.refactoring.RefactoringWizardDialog2.access$3 (RefactoringWizardDialog2.java:416) at org.eclipse.jdt.internal.ui.refactoring.RefactoringWizardDialog2 $1.widgetSelected(RefactoringWizardDialog2.java:547) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2173) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1863) at org.eclipse.jface.window.Window.runEventLoop(Window.java:583) at org.eclipse.jface.window.Window.open(Window.java:563) at org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate (RefactoringStarter.java:56) at org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgMoveStarter.run (ReorgMoveStarter.java:82) at org.eclipse.jdt.internal.ui.packageview.SelectionTransferDropAdapter.handleDrop Move(SelectionTransferDropAdapter.java:207) at org.eclipse.jdt.internal.ui.packageview.SelectionTransferDropAdapter.drop (SelectionTransferDropAdapter.java:131) at org.eclipse.jdt.internal.ui.dnd.JdtViewerDropAdapter.drop (JdtViewerDropAdapter.java:112) at org.eclipse.jdt.internal.ui.dnd.DelegatingDropAdapter.drop (DelegatingDropAdapter.java:79) at org.eclipse.swt.dnd.DNDListener.handleEvent(DNDListener.java:65) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:871) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:856) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:664) at org.eclipse.swt.dnd.DropTarget.notifyListeners(DropTarget.java:507) at org.eclipse.swt.dnd.DropTarget.Drop(DropTarget.java:428) at org.eclipse.swt.dnd.DropTarget.access$7(DropTarget.java:363) at org.eclipse.swt.dnd.DropTarget$3.method6(DropTarget.java:232) at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:115) at org.eclipse.swt.internal.ole.win32.COM.DoDragDrop(Native Method) at org.eclipse.swt.dnd.DragSource.drag(DragSource.java:277) at org.eclipse.swt.dnd.DragSource.access$0(DragSource.java:263) at org.eclipse.swt.dnd.DragSource$1.handleEvent(DragSource.java:157) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2173) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1863) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2347) at org.eclipse.ui.internal.Workbench.run(Workbench.java:2330) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:858) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) 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:299) at org.eclipse.core.launcher.Main.run(Main.java:765) at org.eclipse.core.launcher.Main.main(Main.java:599)
Markus, can you please investigate for M7.
The problem is that JavaCore.create(handle) fails if the project name contains a "(". Moving to jdt-core to resolve problems with "dangerous" characters in project names.
Markus, which JavaCore.create(...) API are you refering to?
Oh sorry, I didn't realize that the create methods are overloaded :-/ I wanted to refer to JavaCore.create(String handleIdentifier). If you set a berakpint in it and then move a CU p/A.java to package qqq, you'll see what I meant.
Thanks. I will investigate.
I have the same problem with a tilde (~) in the project name. To verify: - Create a new java project with the name "A~B" - Select the project in the Package Explorer - Press Ctrl-C, Ctrl-V (on Windows) to create a copy of the project Result: Error dialog "The command for the key you pressed failed" Truncated stack trace from the error log: --------------------------------------------------------------------- java.lang.NullPointerException at org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgUtils.getResource(ReorgUtils.java:116) at org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgUtils.getResources(ReorgUtils.java:122) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction$ProjectPaster.getProjectsToPaste(PasteAction.java:285) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction$ProjectPaster.pasteProjects(PasteAction.java:269) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction$ProjectPaster.paste(PasteAction.java:265) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.run(PasteAction.java:191) 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) : --------------------------------------------------------------------- Optional: Specify an external location _without_ a tilde in it. This doesn't make a difference for the error. This shows that the error is _not_ because of problems with directory names or other filesystem problems.
Yes, the problem in the format of JavaElement handleIdentifier strings. They should escape all characters in the elementName which are used as separators in the memento.
*** Bug 55480 has been marked as a duplicate of this bug. ***
*** Bug 58633 has been marked as a duplicate of this bug. ***
could somebody increase the severity of this bug? I think it should be "major".
*** Bug 54439 has been marked as a duplicate of this bug. ***
Changed JavaElement.getHandleMemento() and getHandleFromMemento(...) so that they escape the delimiters in the memento. Added regression test MementoTests.testProjectMemento2()
Good job, thanks. I will download it tomorrow. Thanks to Dirk Baeumer, too.
*** Bug 57021 has been marked as a duplicate of this bug. ***
Verified for 3.0 with build I200405180816.