eclipse-platform / eclipse.platform.ui

Eclipse Platform
https://projects.eclipse.org/projects/eclipse.platform
Eclipse Public License 2.0
81 stars 182 forks source link

Restore from local history with invalid editions of a file #229

Open Omcsesz opened 2 years ago

Omcsesz commented 2 years ago

Hello, Team!

I experience the following issue: when I select revisions of a file, I get the following error:


org.eclipse.core.internal.resources.ResourceException(/user.jobengine.osgi.server/src/user/jobengine/server/BPMNEncoder.java)[271]: java.lang.Exception: State is not valid or might have expired.
    at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)
    at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38)
    at org.eclipse.core.internal.localstore.HistoryStore2.getContents(HistoryStore2.java:273)
    at org.eclipse.core.internal.resources.FileState.getContents(FileState.java:66)
    at org.eclipse.compare.internal.AddFromHistoryDialog$HistoryInput.getContents(AddFromHistoryDialog.java:71)
    at org.eclipse.jdt.internal.ui.compare.JavaCompareUtilities.readString(JavaCompareUtilities.java:321)
    at org.eclipse.jdt.internal.ui.compare.JavaTextViewer.getString(JavaTextViewer.java:105)
    at org.eclipse.jdt.internal.ui.compare.JavaTextViewer.setInput(JavaTextViewer.java:71)
    at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:268)
    at org.eclipse.compare.internal.AddFromHistoryDialog.feedContent(AddFromHistoryDialog.java:429)
    at org.eclipse.compare.internal.AddFromHistoryDialog.addEdition(AddFromHistoryDialog.java:404)
    at org.eclipse.compare.internal.AddFromHistoryDialog.handleMemberSelect(AddFromHistoryDialog.java:350)
    at org.eclipse.compare.internal.AddFromHistoryDialog$1.widgetSelected(AddFromHistoryDialog.java:282)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4251)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4068)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
    at org.eclipse.jface.window.Window.open(Window.java:799)
    at org.eclipse.compare.internal.AddFromHistoryDialog.select(AddFromHistoryDialog.java:214)
    at org.eclipse.compare.internal.AddFromHistoryAction.run(AddFromHistoryAction.java:88)
    at org.eclipse.compare.internal.BaseCompareAction.run(BaseCompareAction.java:27)
    at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:239)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
    at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4251)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4068)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    at java.base/java.lang.reflect.Method.invoke(Method.java:577)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

I attach a gif with reproducing steps: RestoreFromLocalHistoryBuggy

Can you please support?

mickaelistria commented 2 years ago

Can you please provide steps to reproduce with a vanilla Eclipse SDK?

Omcsesz commented 2 years ago

Can you please provide steps to reproduce with a vanilla Eclipse SDK?

I can not share the code here, but the steps are:

  1. Right-click on the Java package
  2. Select "Restore from local history..." menu item
  3. Click on the file that is shown
  4. Select different revisions
mickaelistria commented 2 years ago

Can you please provide more fine-grained steps to reproduce, including project creation and import; and verify the steps to reproduce do work on a fresh Eclipse SDK first?

Omcsesz commented 2 years ago

Can you please provide more fine-grained steps to reproduce, including project creation and import; and verify the steps to reproduce do work on a fresh Eclipse SDK first?

Actually, I don't know how the project was created, I cloned it from our company's git. This is a standard Java project with Plugin nature.

mickaelistria commented 2 years ago

Just to make it clear and avoid false expectation: without detailed steps to reproduce on a fresh Eclipse SDK, there is not much chance anyone looks at a given bug report.

Omcsesz commented 2 years ago

Just to make it clear and avoid false expectation: without detailed steps to reproduce on a fresh Eclipse SDK, there is not much chance anyone looks at a given bug report.

With a fresh installation of Eclipse, I was not able to reproduce this behaviour (with a fresh portable Eclipse version).

elsazac commented 9 months ago

is this issue relevant any more? may be a close candidate?