Bug 367147 - many ClassCastException from Synchronize view
Summary: many ClassCastException from Synchronize view
Status: NEW
Alias: None
Product: EGit
Classification: Technology
Component: UI (show other bugs)
Version: 1.2   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-19 20:01 EST by Levi Purvis CLA
Modified: 2012-05-08 16:33 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Levi Purvis CLA 2011-12-19 20:01:48 EST
Build Identifier: 20110916-0149

This error happens with both the latest release (1.1.0.201109151100-r) and the nightly build (1.2.0.201112191733).

If it makes any difference, I have around 100 projects open across three git repositories.  Two of the repos / working trees have a git submodule.  The error is repeated in the error log numerous times for a single synchronize operation.

Error message and stack trace:

An exception occurred invoking extension: org.eclipse.egit.ui.changeSetContent for object org.eclipse.egit.core.synchronize.GitSubscriberMergeContext@1d15f2bb

java.lang.ClassCastException: org.eclipse.egit.ui.internal.synchronize.model.GitModelWorkingFile cannot be cast to org.eclipse.egit.ui.internal.synchronize.model.GitModelCacheTree
	at org.eclipse.egit.ui.internal.synchronize.model.GitModelCacheTree.addChild(GitModelCacheTree.java:108)
	at org.eclipse.egit.ui.internal.synchronize.model.GitModelCache.handleCacheTree(GitModelCache.java:265)
	at org.eclipse.egit.ui.internal.synchronize.model.GitModelCache.extractFromCache(GitModelCache.java:235)
	at org.eclipse.egit.ui.internal.synchronize.model.GitModelCache.getChildrenImpl(GitModelCache.java:190)
	at org.eclipse.egit.ui.internal.synchronize.model.GitModelObjectContainer.getChildren(GitModelObjectContainer.java:122)
	at org.eclipse.egit.ui.internal.synchronize.model.GitModelRepository.getListOfCommit(GitModelRepository.java:172)
	at org.eclipse.egit.ui.internal.synchronize.model.GitModelRepository.getChildren(GitModelRepository.java:76)
	at org.eclipse.egit.ui.internal.synchronize.model.GitModelRoot.getChildren(GitModelRoot.java:55)
	at org.eclipse.egit.ui.internal.synchronize.mapping.GitModelWorkbenchAdapter.getChildren(GitModelWorkbenchAdapter.java:29)
	at org.eclipse.ui.model.BaseWorkbenchContentProvider.getChildren(BaseWorkbenchContentProvider.java:64)
	at org.eclipse.ui.model.BaseWorkbenchContentProvider.getElements(BaseWorkbenchContentProvider.java:73)
	at org.eclipse.team.ui.mapping.SynchronizationContentProvider.getDelegateChildren(SynchronizationContentProvider.java:176)
	at org.eclipse.team.ui.mapping.SynchronizationContentProvider.internalGetChildren(SynchronizationContentProvider.java:99)
	at org.eclipse.team.ui.mapping.SynchronizationContentProvider.getElements(SynchronizationContentProvider.java:56)
	at org.eclipse.ui.internal.navigator.extensions.SafeDelegateTreeContentProvider.getElements(SafeDelegateTreeContentProvider.java:101)
	at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider$1.run(NavigatorContentServiceContentProvider.java:149)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.internalGetChildren(NavigatorContentServiceContentProvider.java:139)
	at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.getElements(NavigatorContentServiceContentProvider.java:114)
	at org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:1010)
	at org.eclipse.jface.viewers.ColumnViewer.getRawChildren(ColumnViewer.java:703)
	at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1336)
	at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:391)
	at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:917)
	at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:605)
	at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:805)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:782)
	at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:753)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1533)
	at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:833)
	at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1517)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443)
	at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404)
	at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1510)
	at org.eclipse.team.internal.ui.mapping.CommonViewerAdvisor$NavigableCommonViewer.inputChanged(CommonViewerAdvisor.java:84)
	at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
	at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
	at org.eclipse.team.internal.ui.mapping.CommonViewerAdvisor$5.run(CommonViewerAdvisor.java:521)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.team.internal.ui.Utils$6.run(Utils.java:894)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:180)
	at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:4330)
	at org.eclipse.team.internal.ui.Utils.syncExec(Utils.java:891)
	at org.eclipse.team.internal.ui.Utils.syncExec(Utils.java:886)
	at org.eclipse.team.internal.ui.mapping.CommonViewerAdvisor.propertyChange(CommonViewerAdvisor.java:517)
	at org.eclipse.team.internal.ui.synchronize.SynchronizePageConfiguration$1.run(SynchronizePageConfiguration.java:242)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.team.internal.ui.synchronize.SynchronizePageConfiguration.firePropertyChange(SynchronizePageConfiguration.java:237)
	at org.eclipse.team.internal.ui.synchronize.SynchronizePageConfiguration.setProperty(SynchronizePageConfiguration.java:184)
	at org.eclipse.team.internal.ui.mapping.DiffTreeChangesSection$7.linkActivated(DiffTreeChangesSection.java:478)
	at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleActivate(AbstractHyperlink.java:233)
	at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleMouseUp(AbstractHyperlink.java:327)
	at org.eclipse.ui.forms.widgets.AbstractHyperlink.access$2(AbstractHyperlink.java:311)
	at org.eclipse.ui.forms.widgets.AbstractHyperlink$4.handleEvent(AbstractHyperlink.java:125)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	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:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)


Reproducible: Always

Steps to Reproduce:
1. Open the Team Synchronizing perspective
2. Click Synchronize... toolbar button in the Synchronize view
3. Select "Git", click "Next"
4. For each of the Repositories, select refs/remotes/origin/master as the Destination
5. Check "Fetch changes from remote"
6. Check "Include local uncommitted changes in comparison"
7. Click "Finish"
Comment 1 Dariusz Luksza CLA 2012-05-08 16:33:30 EDT
IMHO after replacing Git Commit Model implementation in commit df7527930d3ff1b4529e7716a27e33d2f3d6bde2 we can close this but as invalid.