Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 330672 - Cannot save changes typed in compare editor
Summary: Cannot save changes typed in compare editor
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 normal with 3 votes (vote)
Target Milestone: ---   Edit
Assignee: PHP Core CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-19 10:38 EST by Zbynek Lstiburek CLA
Modified: 2020-05-14 10:16 EDT (History)
9 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zbynek Lstiburek CLA 2010-11-19 10:38:44 EST
Build Identifier: I20101028-1441

When making changes in compare editor to a PHP file, typed characters will appear, but eclipse doesn't report that the file has unsaved changes
 - e.g. File>Save command is unavailable, Ctrl+S does nothing
 - no star before file name in editor's tab

If I close the editor, the changes are lost without warning.

The context (right-click) menu offers a weird option called "action.save.label", probably at position where "Save" command usually resides.

Other compare editors (eg. plain text) work as expected.

This error appears in error log as soon as I start typing:
Message: Problems occurred when invoking code from plug-in: "org.eclipse.compare".

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:1105)
	at org.eclipse.compare.CompareEditorInput.access$1(CompareEditorInput.java:1102)
	at org.eclipse.compare.CompareEditorInput$1.propertyChange(CompareEditorInput.java:261)
	at org.eclipse.compare.internal.Utilities$2.run(Utilities.java:160)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.compare.internal.Utilities$1.run(Utilities.java:158)
	at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:173)
	at org.eclipse.compare.internal.Utilities.firePropertyChange(Utilities.java:145)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.fireDirtyState(ContentMergeViewer.java:1206)
	at org.eclipse.php.internal.ui.compare.ContentMergeViewer.setLeftDirty(ContentMergeViewer.java:1225)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.documentChanged(TextMergeViewer.java:2684)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer.access$14(TextMergeViewer.java:2679)
	at org.eclipse.php.internal.ui.compare.TextMergeViewer$ContributorInfo.documentChanged(TextMergeViewer.java:1010)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument._fireDocumentChanged(BasicStructuredDocument.java:460)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.fireStructuredDocumentEvent(BasicStructuredDocument.java:1184)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.internalReplaceText(BasicStructuredDocument.java:1964)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2419)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2404)
	at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.replaceText(JobSafeStructuredDocument.java:135)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replace(BasicStructuredDocument.java:2364)
	at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.replace(JobSafeStructuredDocument.java:98)
	at org.eclipse.jface.text.DefaultDocumentAdapter.replaceTextRange(DefaultDocumentAdapter.java:248)
	at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7172)
	at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7986)
	at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2458)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5932)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5962)
	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5656)
	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:1062)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1099)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1508)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4273)
	at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4165)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4891)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2460)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3673)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	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:369)
	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:621)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:576)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1409)


Reproducible: Always

Steps to Reproduce:
I. open a php file in compare editor, for example
  1. checkout a php file from svn repository
  2. do a few changes
  3. rightclick the file in navigator and select Compare with... Base revision
II. start typing in left pane (local version)
Comment 1 Zhongwei Zhao CLA 2011-04-15 00:49:51 EDT
I can save the change but there is no "*" sign.
Comment 2 Oliver Grätz CLA 2011-07-19 13:18:38 EDT
I just noticed this after switching from PDT2 to PDT3 (the 20110516 milestone). It seems that for every fixed bug in PDT a new one appears elsewhere.
Comment 3 Zhongwei Zhao CLA 2011-07-28 03:23:19 EDT
fixed in head
Comment 4 Kalin CLA 2011-08-03 09:08:57 EDT
Verified.
Closing...
Comment 5 Daniel Ceregatti CLA 2012-02-16 17:32:40 EST
This bug still exists. To reproduce:

Select 2 directories in Navigator. In my case they are in two separate projects. Right click any of the two directories, compare to, each other, select a file in the list of files that appear in the compare editor and push a change from one side to the other, then select a different file in the list. I'm experiencing exactly what is described here:

http://www.eclipse.org/forums/index.php/t/224525/

Note that post links to this bug.

I'm using build N201202161551 from Hudson, and I'm currently seeing the changed file go "dirty", making control-s/save available, but no files are ever saved. With PDT that comes with Indigo, which is very old, the file never goes dirty, nor does the option to save ever come up, despite a change being pushed from one side of the compare editor to the other.

I've reproduced this in both Linux with OpenJDK and Sun JDK, as well as in Windows 7. Both Sun JDKs were 1.7_03. On Linux it was x86_64 and on windows it was 32 bit.

Please re-open this bug.
Comment 6 Zhongwei Zhao CLA 2012-02-18 01:07:40 EST
hi,

You can reopen this bug if you confirm it really can be reproduced,so that we can fix it later.
Comment 7 Daniel Ceregatti CLA 2012-02-21 13:56:39 EST
I see no option to "reopen" this bug anywhere in bugzilla, which is why I suggested you do so. In fact, eclipse.org's bugzilla's been rather buggy lately. It would not let me log in with credentials I knew to work, and when I tried resetting my password, that did not work either.

I showed how to reproduce the bug in my report. Since there is no interface option in bugzilla that allows me to reopen the bug, can you please do it?
Comment 8 Zhongwei Zhao CLA 2012-02-21 20:39:35 EST
reopened as Daniel suggested.
Comment 9 Frank Rochlitzer CLA 2012-03-01 07:16:59 EST
I can confirm this bug.

It only appears if you select 2 directories to compare each other.
If you select 2 files it seems to work properly.
Comment 10 Frank Rochlitzer CLA 2012-03-19 05:15:36 EDT
I think bug 366275 is a duplicate of this.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=366275

This bug is really annoying to keep syncronized multiple large projects.
Comment 11 Jamie Giberti CLA 2012-04-04 06:53:30 EDT
I have been using PDT 3 with no problems on the compare function (as is mentioned on the related bug) until today and now I am encountering this issue whenever I try to compare and save code across projects. It's an incredibly frustrating bug which will really affect productivity for a lot of people. Is there some way to give this issue a bump to a higher priority to get fixed?
Comment 12 Jamie Giberti CLA 2012-04-04 07:05:16 EDT
Just as an addition to my previous comment I know the issue was raised saying Windows XP - I'm on Windows 7 so its across multiple versions of the OS and not just an XP thing.
Comment 13 Frank Rochlitzer CLA 2012-05-05 06:19:18 EDT
The bug 366275 is fixed - maybe this one too.
But the latests build is from 2012-04-29 (https://hudson.eclipse.org/hudson/job/cbi-pdt-3.0-indigo/), waiting for new build.
Comment 14 Jamie Giberti CLA 2012-05-08 04:46:15 EDT
Any idea when we might see a new build - the last one still shows the 29th of April (which on the related bug you mentioned the comments seem to indicate the latest build does not contain that fix).

Thanks.
Comment 15 Matthias Striegl CLA 2012-07-04 03:35:23 EDT
IMO the problem is caused by an API break in the platform / compare code. See also https://bugs.eclipse.org/bugs/show_bug.cgi?id=383893.
Comment 16 Szymon Ptaszkiewicz CLA 2012-12-13 08:38:13 EST

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