Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 322722

Summary: Classcast exception in setEnabled in actionhandlers on shutdown
Product: [Technology] EGit Reporter: Robin Rosenberg <robin.rosenberg>
Component: UIAssignee: Project Inbox <egit.ui-inbox>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: jens.baumgart, mathias.kinzler
Version: unspecified   
Target Milestone: 0.9.0-M2   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Robin Rosenberg CLA 2010-08-15 12:20:58 EDT

    
Comment 1 Robin Rosenberg CLA 2010-08-15 12:22:41 EDT
Who's assigning a plain Object to the selection?

java.lang.ClassCastException: java.lang.Object cannot be cast to org.eclipse.jface.viewers.ISelection
        at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getSelection(RepositoryActionHandler.java:192)
        at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getSelectedResources(RepositoryActionHandler.java:276)
        at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getSelectedProjects(RepositoryActionHandler.java:255)
        at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getRepository(RepositoryActionHandler.java:127)
        at org.eclipse.egit.ui.internal.actions.BranchActionHandler.isEnabled(BranchActionHandler.java:81)
        at org.eclipse.egit.ui.internal.actions.RepositoryAction.isEnabled(RepositoryAction.java:128)
        at org.eclipse.egit.ui.internal.actions.RepositoryAction.selectionChanged(RepositoryAction.java:105)
        at org.eclipse.ui.internal.PluginAction.refreshEnablement(PluginAction.java:206)
        at org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:277)
        at org.eclipse.ui.internal.ObjectPluginAction.partClosed(ObjectPluginAction.java:49)
        at org.eclipse.ui.internal.PartListenerList2$3.run(PartListenerList2.java:100)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.runtime.Platform.run(Platform.java:888)
        at org.eclipse.ui.internal.PartListenerList2.fireEvent(PartListenerList2.java:55)
        at org.eclipse.ui.internal.PartListenerList2.firePartClosed(PartListenerList2.java:98)
        at org.eclipse.ui.internal.PartService.firePartClosed(PartService.java:227)
        at org.eclipse.ui.internal.WorkbenchPagePartList.firePartClosed(WorkbenchPagePartList.java:39)
        at org.eclipse.ui.internal.PartList.partClosed(PartList.java:274)
        at org.eclipse.ui.internal.PartList.removePart(PartList.java:186)
        at org.eclipse.ui.internal.WorkbenchPage.disposePart(WorkbenchPage.java:1720)
        at org.eclipse.ui.internal.WorkbenchPage.partRemoved(WorkbenchPage.java:1713)
        at org.eclipse.ui.internal.ViewFactory.releaseView(ViewFactory.java:257)
        at org.eclipse.ui.internal.Perspective.dispose(Perspective.java:292)
        at org.eclipse.ui.internal.WorkbenchPage.dispose(WorkbenchPage.java:1792)
        at org.eclipse.ui.internal.WorkbenchWindow.closeAllPages(WorkbenchWindow.java:861)
        at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1696)
        at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:734)
        at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:710)
        at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:826)
Comment 2 Mathias Kinzler CLA 2010-08-17 03:25:34 EDT
Merged as a42f327f228eb877e1e8684687f2e965acb51fed
Comment 3 Jens Baumgart CLA 2010-08-17 05:14:49 EDT
Still occurs: in my scenario the workbench window is still there when the problem occurs:

java.lang.ClassCastException: java.lang.Object cannot be cast to org.eclipse.jface.viewers.ISelection
	at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getSelection(RepositoryActionHandler.java:196)
	at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getSelectedResources(RepositoryActionHandler.java:280)
	at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getSelectedProjects(RepositoryActionHandler.java:259)
	at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getRepository(RepositoryActionHandler.java:128)
	at org.eclipse.egit.ui.internal.actions.FetchActionHandler.isEnabled(FetchActionHandler.java:52)
	at org.eclipse.egit.ui.internal.actions.RepositoryAction.isEnabled(RepositoryAction.java:128)
	at org.eclipse.egit.ui.internal.actions.RepositoryAction.selectionChanged(RepositoryAction.java:105)
	at org.eclipse.ui.internal.PluginAction.refreshEnablement(PluginAction.java:206)
	at org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:277)
	at org.eclipse.ui.internal.ObjectPluginAction.partClosed(ObjectPluginAction.java:49)
	at org.eclipse.ui.internal.PartListenerList2$3.run(PartListenerList2.java:100)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.runtime.Platform.run(Platform.java:888)
	at org.eclipse.ui.internal.PartListenerList2.fireEvent(PartListenerList2.java:55)
	at org.eclipse.ui.internal.PartListenerList2.firePartClosed(PartListenerList2.java:98)
	at org.eclipse.ui.internal.PartService.firePartClosed(PartService.java:227)
	at org.eclipse.ui.internal.WorkbenchPagePartList.firePartClosed(WorkbenchPagePartList.java:39)
	at org.eclipse.ui.internal.PartList.partClosed(PartList.java:274)
	at org.eclipse.ui.internal.PartList.removePart(PartList.java:186)
	at org.eclipse.ui.internal.WorkbenchPage.disposePart(WorkbenchPage.java:1720)
	at org.eclipse.ui.internal.WorkbenchPage.partRemoved(WorkbenchPage.java:1713)
	at org.eclipse.ui.internal.ViewFactory.releaseView(ViewFactory.java:257)
	at org.eclipse.ui.internal.Perspective.dispose(Perspective.java:292)
	at org.eclipse.ui.internal.WorkbenchPage.dispose(WorkbenchPage.java:1792)
	at org.eclipse.ui.internal.WorkbenchWindow.closeAllPages(WorkbenchWindow.java:861)
	at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1696)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:734)
	at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:710)
	at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:826)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:824)
	at org.eclipse.jface.window.WindowManager.close(WindowManager.java:109)
	at org.eclipse.ui.internal.Workbench$18.run(Workbench.java:1105)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1102)
	at org.eclipse.ui.internal.Workbench.access$15(Workbench.java:1031)
	at org.eclipse.ui.internal.Workbench$25.run(Workbench.java:1275)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1273)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1245)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:731)
	at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:710)
	at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:826)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:824)
	at org.eclipse.jface.window.Window.handleShellCloseEvent(Window.java:741)
Comment 4 Mathias Kinzler CLA 2010-08-17 05:16:53 EDT
Reopened so that we can accomodate the additional changes here.
Comment 5 Jens Baumgart CLA 2010-08-19 07:54:49 EDT
Fix proposed: http://egit.eclipse.org/r/#change,1336
Comment 6 Mathias Kinzler CLA 2010-08-19 08:59:55 EDT
Merged as 25add621623a5eb15c26bd623510e862b1ef2b2f