Bug 298638 - [open type] Open Type dialog try to access types from closed project
Summary: [open type] Open Type dialog try to access types from closed project
Status: RESOLVED WORKSFORME
Alias: None
Product: JDT
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.6   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: JDT-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2009-12-30 05:27 EST by utilisateur_768 CLA
Modified: 2010-01-12 04:52 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description utilisateur_768 CLA 2009-12-30 05:27:39 EST
I opened the "Open Type" dialog, and while typing, several exceptions like the following appeared in the error log view.

"My_Project" is closed, but for some reason, "Open Type" try to reach types of this closed project.

-- Error Details --
Date: Wed Dec 30 11:28:31 CET 2009
Message: Internal Error
Severity: Error
Product: Eclipse SDK 3.6.0.v200910301201 (org.eclipse.sdk.ide)
Plugin: org.eclipse.jdt.ui
Session Data:
eclipse.buildId=I20091030-1201
java.version=1.6.0_17
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_EN
Framework arguments:  -refresh
Command-line arguments:  -os win32 -ws win32 -arch x86 -clean -refresh -debug D:\User\Scripts\.options -consolelog


Exception Stack Trace:
Java Model Exception: Java Model Status [My_Project does not exist]
	at org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:502)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:246)
	at org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:504)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:240)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:515)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:252)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:238)
	at org.eclipse.jdt.internal.core.PackageFragmentRoot.getKind(PackageFragmentRoot.java:477)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog$TypeItemsComparator.getElementTypeCategory(FilteredTypesSelectionDialog.java:1450)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog$TypeItemsComparator.compare(FilteredTypesSelectionDialog.java:1393)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$CamelCaseComparator.compare(FilteredItemsSelectionDialog.java:3289)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$HistoryComparator.compare(FilteredItemsSelectionDialog.java:3323)
	at java.util.Arrays.mergeSort(Unknown Source)
	at java.util.Arrays.sort(Unknown Source)
	at java.util.Collections.sort(Unknown Source)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$ContentProvider.addHistoryElement(FilteredItemsSelectionDialog.java:2761)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.accessedHistoryItem(FilteredItemsSelectionDialog.java:1242)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.computeResult(FilteredItemsSelectionDialog.java:1040)
	at org.eclipse.ui.dialogs.SelectionStatusDialog.okPressed(SelectionStatusDialog.java:145)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.okPressed(FilteredItemsSelectionDialog.java:1062)
	at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:472)
	at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1002)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3917)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3510)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
	at org.eclipse.jface.window.Window.open(Window.java:801)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog.open(FilteredTypesSelectionDialog.java:499)
	at org.eclipse.jdt.internal.ui.actions.OpenTypeAction.runWithEvent(OpenTypeAction.java:78)
	at org.eclipse.jdt.internal.ui.actions.OpenTypeAction.runWithEvent(OpenTypeAction.java:160)
	at org.eclipse.ui.internal.handlers.ActionDelegateHandlerProxy.execute(ActionDelegateHandlerProxy.java:281)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:470)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:824)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:880)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:569)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:510)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:125)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1227)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1001)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1026)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1011)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1052)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1048)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1456)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4059)
	at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:346)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3951)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:342)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4641)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2435)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3508)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2404)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2368)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2220)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:367)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	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.equinox.launcher.Main.invokeFramework(Main.java:611)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:566)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1363)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1339)
Comment 1 utilisateur_768 CLA 2009-12-30 05:29:03 EST
There are lots of this exception too:
Java Model Exception: Java Model Status [My_Project does not exist]
	at org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:502)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:246)
	at org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:504)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:240)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:515)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:252)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:238)
	at org.eclipse.jdt.internal.core.PackageFragmentRoot.getKind(PackageFragmentRoot.java:477)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog$TypeItemsComparator.getElementTypeCategory(FilteredTypesSelectionDialog.java:1450)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog$TypeItemsComparator.compare(FilteredTypesSelectionDialog.java:1392)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$CamelCaseComparator.compare(FilteredItemsSelectionDialog.java:3289)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$HistoryComparator.compare(FilteredItemsSelectionDialog.java:3323)
	at java.util.Arrays.mergeSort(Unknown Source)
	at java.util.Arrays.sort(Unknown Source)
	at java.util.Collections.sort(Unknown Source)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$ContentProvider.getSortedItems(FilteredItemsSelectionDialog.java:2838)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$ContentProvider.getFilteredItems(FilteredItemsSelectionDialog.java:3015)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$ContentProvider.reloadCache(FilteredItemsSelectionDialog.java:2933)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.reloadCache(FilteredItemsSelectionDialog.java:1001)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog.reloadCache(FilteredTypesSelectionDialog.java:693)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$RefreshCacheJob.run(FilteredItemsSelectionDialog.java:1503)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 2 Markus Keller CLA 2010-01-04 10:28:28 EST
I cannot reproduce such problems. Was this a one-time problem, or can you reproduce after restarting Eclipse?

Even better would be steps to reproduce in a fresh workspace.

Is there anything special about My_Project (e.g. does its classpath contain linked Jars that could also appear elsewhere on the classpath or that could be modified by an external builder, etc.)?
Comment 3 utilisateur_768 CLA 2010-01-04 10:42:47 EST
I cannot reproduce it today. I was able to reproduce it every time i opened "Open type" dialog when i posted the bug.

If it can help, i think i had open a type on My_Project, i closed My_Project, and then call open type wich has some kind of history. It would be "steps" to trigger it.

My_Project share its external jars with My_Project2, and they synced to the same CVS module (one on branch, the other on HEAD) : so they share a lot filenames... No external builder is configured on these projects.
Comment 4 utilisateur_768 CLA 2010-01-12 03:48:19 EST
In "Open Type" dialog, i have a type class from a closed project (is this should be prevented?) and when i select it, and click OK, the java file is opened in notepad (system editor).

There must something wrong with this dalog to use/search for types from closed projects.
Comment 5 utilisateur_768 CLA 2010-01-12 03:50:17 EST
I switched to I20091210-1301 (3.6M4)  before comment #4
Comment 6 Dani Megert CLA 2010-01-12 03:56:58 EST
Can you attach the workspace or provide steps? Otherwise there's not much we can do.

>In "Open Type" dialog, i have a type class from a closed project (is this
>should be prevented?)
The dialog should not show such types.
Comment 7 utilisateur_768 CLA 2010-01-12 04:03:40 EST
No i can't, because of space taken and because of "closed source" confidentiality problem...

Anyway, when i tried again to acces a type from *opened* project, i got the exception again : (My_Closed_Project) is the closed project...
Java Model Exception: Java Model Status [My_Closed_Project does not exist]
	at org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:502)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:246)
	at org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:504)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:240)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:515)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:252)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:238)
	at org.eclipse.jdt.internal.core.PackageFragmentRoot.getKind(PackageFragmentRoot.java:477)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog$TypeItemsComparator.getElementTypeCategory(FilteredTypesSelectionDialog.java:1450)
	at org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog$TypeItemsComparator.compare(FilteredTypesSelectionDialog.java:1392)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$CamelCaseComparator.compare(FilteredItemsSelectionDialog.java:3288)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$HistoryComparator.compare(FilteredItemsSelectionDialog.java:3322)
	at java.util.Arrays.mergeSort(Unknown Source)
	at java.util.Arrays.sort(Unknown Source)
	at java.util.Collections.sort(Unknown Source)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog$ContentProvider.addHistoryElement(FilteredItemsSelectionDialog.java:2760)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.accessedHistoryItem(FilteredItemsSelectionDialog.java:1241)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.computeResult(FilteredItemsSelectionDialog.java:1039)
	at org.eclipse.ui.dialogs.SelectionStatusDialog.okPressed(SelectionStatusDialog.java:145)
	at org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.okPressed(FilteredItemsSelectionDialog.java:1061)
...
Comment 8 utilisateur_768 CLA 2010-01-12 04:09:15 EST
I guess it is linked, but i have another bug: When i pressed Ctrl+T on some method, the subclass overriding the method are not shown any more in the popup... should i open another bug report ? (no exception is trhow when i press Ctrl+T).
Comment 9 Dani Megert CLA 2010-01-12 04:20:25 EST
Maybe your workspace is corrupted somehow. Can you
1. reopen the closed project(s)
2. exit
3. delete the search index by:
   1. go to <workspace>/.metadata/.plugins/org.eclipse.jdt.core
   2. delete *.index plus savedIndexNames.txt
4. restart
5. close the project(s)
6. verify whether it works now

The Ctrl+T issue is either also caused by this or by incomplete Java build paths in one or several of your projects.
Comment 10 utilisateur_768 CLA 2010-01-12 04:25:27 EST
Thanks, everything is working fine (Ctrl+T and Open Type dialog) !!!
Comment 11 Dani Megert CLA 2010-01-12 04:38:15 EST
Glad to help. So we can close this?
Comment 12 utilisateur_768 CLA 2010-01-12 04:47:26 EST
yes
Comment 13 Dani Megert CLA 2010-01-12 04:52:32 EST
.