Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 351536 - Error when saving changes during folders comparison
Summary: Error when saving changes during folders comparison
Status: CLOSED DUPLICATE of bug 383893
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: PDT (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P1 major with 5 votes (vote)
Target Milestone: ---   Edit
Assignee: PHP Core CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-08 06:01 EDT by Vincent CLA
Modified: 2020-05-14 10:16 EDT (History)
6 users (show)

See Also:


Attachments
screenshot (34.77 KB, image/jpeg)
2011-10-18 06:23 EDT, Kalin CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vincent CLA 2011-07-08 06:01:40 EDT
Build Identifier: 3.7.0

When comparing 2 folders with differents php files, and making changes to a file, an error occured when saving the modified file : 

"Save" did not complete normally.  Please see the log for more information.
org.eclipse.php.internal.ui.compare.PhpMergeViewer cannot be cast to org.eclipse.compare.contentmergeviewer.ContentMergeViewer

The same file comparison works fine if it's done directly between the 2 php files (and not on their parents folders)

Reproducible: Always

Steps to Reproduce:
1. Select 2 folders (each folder containing a different version of a file 'test.php') and click on "compare with" > "each other"
2. On the 'Compare' windows click on the php file to open the compare file view
3. Select a difference, and click on the "copy current change ..." arrow to modified the file
4. Save the modified file with ctrl+S
Comment 1 Lucas Eagleton CLA 2011-07-26 21:11:44 EDT
This is also happening in Eclipse 3.7 on Mac OS X 10.7 Lion - fresh install of both.
Comment 2 Zhongwei Zhao CLA 2011-08-23 02:50:39 EDT
fixed in head
Comment 3 Kalin CLA 2011-10-18 06:22:25 EDT
Still reproducible.
I got the following in a the log:

!ENTRY org.eclipse.compare 4 2 2011-10-18 13:18:55.703
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.compare".
!STACK 0
java.lang.ClassCastException: org.eclipse.php.internal.ui.compare.PhpMergeViewer cannot be cast to org.eclipse.compare.contentmergeviewer.ContentMergeViewer
	at org.eclipse.compare.CompareEditorInput.setDirty(CompareEditorInput.java:1177)
	at org.eclipse.compare.CompareEditorInput.access$1(CompareEditorInput.java:1174)
	at org.eclipse.compare.CompareEditorInput$1.propertyChange(CompareEditorInput.java:261)
	at org.eclipse.compare.internal.Utilities$2.run(Utilities.java:159)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.compare.internal.Utilities$1.run(Utilities.java:157)
	at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:171)
	at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:145)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.fireDirtyState(ContentMergeViewer.java:1211)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.setLeftDirty(ContentMergeViewer.java:1230)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.flushContent(ContentMergeViewer.java:1306)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.flushContent(TextMergeViewer.java:4691)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.flush(ContentMergeViewer.java:1278)
	at org.eclipse.compare.CompareEditorInput.flushViewer(CompareEditorInput.java:1293)
	at org.eclipse.compare.CompareEditorInput.flushViewers(CompareEditorInput.java:1262)
	at org.eclipse.compare.internal.ResourceCompareInput.getAdapter(ResourceCompareInput.java:494)
	at org.eclipse.ui.ide.ResourceUtil.getFile(ResourceUtil.java:58)
	at org.eclipse.ui.internal.ide.actions.BuildUtilities.findSelectedProjects(BuildUtilities.java:97)
	at org.eclipse.ui.actions.BuildAction.isEnabled(BuildAction.java:239)
	at org.eclipse.ui.actions.RetargetAction.setActionHandler(RetargetAction.java:273)
	at org.eclipse.ui.internal.ide.actions.RetargetActionWithDefault.setActionHandler(RetargetActionWithDefault.java:47)
	at org.eclipse.ui.actions.RetargetAction.propagateChange(RetargetAction.java:211)
	at org.eclipse.ui.actions.RetargetAction$1.propertyChange(RetargetAction.java:61)
	at org.eclipse.ui.SubActionBars.firePropertyChange(SubActionBars.java:292)
	at org.eclipse.ui.SubActionBars.fireActionHandlersChanged(SubActionBars.java:274)
	at org.eclipse.ui.SubActionBars.updateActionBars(SubActionBars.java:613)
	at org.eclipse.compare.internal.CompareHandlerService.updateActionBars(CompareHandlerService.java:121)
	at org.eclipse.compare.internal.CompareHandlerService.updatePaneActionHandlers(CompareHandlerService.java:151)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.connectGlobalActions(TextMergeViewer.java:2341)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.access$58(TextMergeViewer.java:2337)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer$23.focusGained(TextMergeViewer.java:2293)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:139)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058)
	at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:2822)
	at org.eclipse.swt.widgets.Widget.wmSetFocus(Widget.java:2403)
	at org.eclipse.swt.widgets.Control.WM_SETFOCUS(Control.java:5152)
	at org.eclipse.swt.widgets.Canvas.WM_SETFOCUS(Canvas.java:448)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4598)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4985)
	at org.eclipse.swt.internal.win32.OS.SetFocus(Native Method)
	at org.eclipse.swt.widgets.Control.forceFocus(Control.java:1098)
	at org.eclipse.swt.widgets.Control.setFocus(Control.java:3303)
	at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1040)
	at org.eclipse.swt.widgets.Composite.WM_LBUTTONDOWN(Composite.java:1351)
	at org.eclipse.swt.widgets.Canvas.WM_LBUTTONDOWN(Canvas.java:444)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4564)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2530)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752)
	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(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:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

!ENTRY org.eclipse.ui 4 0 2011-10-18 13:18:55.750
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.ClassCastException: org.eclipse.php.internal.ui.compare.PhpMergeViewer cannot be cast to org.eclipse.compare.contentmergeviewer.ContentMergeViewer
	at org.eclipse.compare.CompareEditorInput.setDirty(CompareEditorInput.java:1088)
	at org.eclipse.compare.internal.ResourceCompareInput$MyDiffNode.fireChange(ResourceCompareInput.java:89)
	at org.eclipse.compare.internal.MergeViewerContentProvider.saveLeftContent(MergeViewerContentProvider.java:134)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.flushContent(ContentMergeViewer.java:1307)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.flushContent(TextMergeViewer.java:4691)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.flush(ContentMergeViewer.java:1278)
	at org.eclipse.compare.CompareEditorInput.flushViewer(CompareEditorInput.java:1293)
	at org.eclipse.compare.CompareEditorInput.flushViewers(CompareEditorInput.java:1262)
	at org.eclipse.compare.internal.ResourceCompareInput.getAdapter(ResourceCompareInput.java:494)
	at org.eclipse.ui.ide.ResourceUtil.getFile(ResourceUtil.java:58)
	at org.eclipse.ui.internal.ide.actions.BuildUtilities.findSelectedProjects(BuildUtilities.java:97)
	at org.eclipse.ui.actions.BuildAction.isEnabled(BuildAction.java:239)
	at org.eclipse.ui.actions.RetargetAction.setActionHandler(RetargetAction.java:273)
	at org.eclipse.ui.internal.ide.actions.RetargetActionWithDefault.setActionHandler(RetargetActionWithDefault.java:47)
	at org.eclipse.ui.actions.RetargetAction.propagateChange(RetargetAction.java:211)
	at org.eclipse.ui.actions.RetargetAction$1.propertyChange(RetargetAction.java:61)
	at org.eclipse.ui.SubActionBars.firePropertyChange(SubActionBars.java:292)
	at org.eclipse.ui.SubActionBars.fireActionHandlersChanged(SubActionBars.java:274)
	at org.eclipse.ui.SubActionBars.updateActionBars(SubActionBars.java:613)
	at org.eclipse.compare.internal.CompareHandlerService.updateActionBars(CompareHandlerService.java:121)
	at org.eclipse.compare.internal.CompareHandlerService.updatePaneActionHandlers(CompareHandlerService.java:151)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.connectGlobalActions(TextMergeViewer.java:2341)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.access$58(TextMergeViewer.java:2337)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer$23.focusGained(TextMergeViewer.java:2293)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:139)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058)
	at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:2822)
	at org.eclipse.swt.widgets.Widget.wmSetFocus(Widget.java:2403)
	at org.eclipse.swt.widgets.Control.WM_SETFOCUS(Control.java:5152)
	at org.eclipse.swt.widgets.Canvas.WM_SETFOCUS(Canvas.java:448)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4598)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4985)
	at org.eclipse.swt.internal.win32.OS.SetFocus(Native Method)
	at org.eclipse.swt.widgets.Control.forceFocus(Control.java:1098)
	at org.eclipse.swt.widgets.Control.setFocus(Control.java:3303)
	at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1040)
	at org.eclipse.swt.widgets.Composite.WM_LBUTTONDOWN(Composite.java:1351)
	at org.eclipse.swt.widgets.Canvas.WM_LBUTTONDOWN(Canvas.java:444)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4564)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2530)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752)
	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(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:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Comment 4 Kalin CLA 2011-10-18 06:23:06 EDT
Created attachment 205408 [details]
screenshot
Comment 5 Steve Oliveira CLA 2012-01-09 11:44:27 EST
Still reproducible for me:

Eclipse PDE:
Version: 3.7.1.r37x_v20110810-0800-7b7qFVtFEx2XnmZ4jlM5mjM
Build id: M20110909-1335

PDT:
Version: 3.0.2.v2011102768
Build id: org.zend.php.product

!ENTRY org.eclipse.ui 4 0 2012-01-09 11:39:14.435
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.ClassCastException: org.eclipse.php.internal.ui.compare.PhpMergeViewer cannot be cast to org.eclipse.compare.contentmergeviewer.ContentMergeViewer
	at org.eclipse.compare.CompareEditorInput.setDirty(CompareEditorInput.java:1088)
	at org.eclipse.compare.internal.ResourceCompareInput$MyDiffNode.fireChange(ResourceCompareInput.java:89)
	at org.eclipse.compare.internal.MergeViewerContentProvider.saveLeftContent(MergeViewerContentProvider.java:134)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.flushContent(ContentMergeViewer.java:1358)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.flushContent(TextMergeViewer.java:4691)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.flush(ContentMergeViewer.java:1329)
	at org.eclipse.compare.CompareEditorInput.flushViewer(CompareEditorInput.java:1293)
	at org.eclipse.compare.CompareEditorInput.flushViewers(CompareEditorInput.java:1262)
	at org.eclipse.compare.internal.ResourceCompareInput.getAdapter(ResourceCompareInput.java:494)
	at org.eclipse.ui.ide.ResourceUtil.getFile(ResourceUtil.java:58)
	at org.eclipse.ui.internal.ide.actions.BuildUtilities.findSelectedProjects(BuildUtilities.java:97)
	at org.eclipse.ui.actions.BuildAction.isEnabled(BuildAction.java:239)
	at org.eclipse.ui.actions.RetargetAction.setActionHandler(RetargetAction.java:273)
	at org.eclipse.ui.internal.ide.actions.RetargetActionWithDefault.setActionHandler(RetargetActionWithDefault.java:47)
	at org.eclipse.ui.actions.RetargetAction.propagateChange(RetargetAction.java:211)
	at org.eclipse.ui.actions.RetargetAction$1.propertyChange(RetargetAction.java:61)
	at org.eclipse.ui.SubActionBars.firePropertyChange(SubActionBars.java:292)
	at org.eclipse.ui.SubActionBars.fireActionHandlersChanged(SubActionBars.java:274)
	at org.eclipse.ui.SubActionBars.updateActionBars(SubActionBars.java:613)
	at org.eclipse.compare.internal.CompareHandlerService.updateActionBars(CompareHandlerService.java:121)
	at org.eclipse.compare.internal.CompareHandlerService.updatePaneActionHandlers(CompareHandlerService.java:151)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.connectGlobalActions(TextMergeViewer.java:2341)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.access$58(TextMergeViewer.java:2337)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer$23.focusLost(TextMergeViewer.java:2297)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:143)
	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.Widget.sendEvent(Widget.java:1282)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1263)
	at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:3575)
	at org.eclipse.swt.widgets.Control.gtk_event_after(Control.java:2938)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1738)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:5016)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4408)
	at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
	at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422)
	at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245)
	at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207)
	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)
Comment 6 Szymon Ptaszkiewicz CLA 2012-12-13 08:37:57 EST

*** This bug has been marked as a duplicate of bug 383893 ***