ST4 saving javascript changes from compare editor fails

Offen
#1,092 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
25/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
java, javascript
Bereich
desktop, devtools

Rechercherichtung

Reproduziere den Fehler beim Speichern im Compare-Editor anhand der aufgeführten STS4 4.17.2-Schritte für macOS ARM und beginne dann bei GenericEditorMergeViewer.configureTextViewer sowie dem Stack-Eintrag TextViewer.setHyperlinkPresenter. Als abgeschlossen gilt die Aufgabe, wenn auf beiden Seiten des Compare-Editors vorgenommene JavaScript-Änderungen erfolgreich gespeichert werden, ohne dass eine IllegalStateException auftritt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Saving changes in javascript file after comparing projects and editing fails with IllegalStateException. Uninstalled Wild Web Developer plugin avoids the issue.

Steps to reproduce

  1. STS4 4.17.2 macos arm_64 (fresh install)
  2. Create project comp1 and comp2
  3. Create file comp1/hello.js with console.log("Hello Foo");
  4. Create file comp2/hello.js with console.log("Hello Bar");
  5. Select comp1 and comp2 projects and select Compare With->Each Other
  6. In compare editor, double click on hello.js and make change(s) to either side
  7. Try to save

Result:

Changes are not saved and exception found in the error log

!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.IllegalStateException
    at org.eclipse.jface.text.TextViewer.setHyperlinkPresenter(TextViewer.java:5639)
    at org.eclipse.jface.text.source.SourceViewer.configure(SourceViewer.java:529)
    at org.eclipse.ui.internal.genericeditor.compare.GenericEditorMergeViewer.configureTextViewer(GenericEditorMergeViewer.java:68)
    at org.eclipse.ui.internal.genericeditor.compare.GenericEditorMergeViewer$1.inputDocumentChanged(GenericEditorMergeViewer.java:50)
    at org.eclipse.jface.text.TextViewer.fireInputDocumentChanged(TextViewer.java:2849)
    at org.eclipse.jface.text.TextViewer.setDocument(TextViewer.java:2890)
    at org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:663)
    at org.eclipse.jface.text.source.SourceViewer.setDocument(SourceViewer.java:603)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.updateViewerDocument(TextMergeViewer.java:807)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.internalSetDocument(TextMergeViewer.java:762)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.setDocument(TextMergeViewer.java:679)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateContent(TextMergeViewer.java:3029)
    at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.internalRefresh(ContentMergeViewer.java:793)
    at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.refresh(ContentMergeViewer.java:769)
    at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.handleCompareInputChange(ContentMergeViewer.java:1389)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer.handleCompareInputChange(TextMergeViewer.java:5345)
    at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.lambda$1(ContentMergeViewer.java:390)
    at org.eclipse.compare.structuremergeviewer.DiffNode.fireChange(DiffNode.java:140)
    at org.eclipse.compare.internal.ResourceCompareInput$MyDiffNode.fireChange(ResourceCompareInput.java:90)
    at org.eclipse.compare.internal.MergeViewerContentProvider.saveLeftContent(MergeViewerContentProvider.java:152)
    at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.flushLeftSide(ContentMergeViewer.java:1272)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer.flushLeftSide(TextMergeViewer.java:5235)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer.flushContent(TextMergeViewer.java:5258)
    at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.flush(ContentMergeViewer.java:1243)
    at org.eclipse.compare.CompareEditorInput.flushViewer(CompareEditorInput.java:1220)
    at org.eclipse.compare.CompareEditorInput.flushViewers(CompareEditorInput.java:1189)
    at org.eclipse.compare.internal.ResourceCompareInput.getAdapter(ResourceCompareInput.java:508)
    at org.eclipse.core.runtime.Adapters.adapt(Adapters.java:67)
    at org.eclipse.core.runtime.Adapters.adapt(Adapters.java:116)
    at org.eclipse.ui.ide.ResourceUtil.getFile(ResourceUtil.java:61)
    at org.eclipse.ui.internal.ide.actions.BuildUtilities.findSelectedProjects(BuildUtilities.java:108)
    at org.eclipse.ui.actions.BuildAction.isEnabled(BuildAction.java:231)
    at org.eclipse.ui.actions.RetargetAction.setActionHandler(RetargetAction.java:268)
    at org.eclipse.ui.internal.ide.actions.RetargetActionWithDefault.setActionHandler(RetargetActionWithDefault.java:51)
    at org.eclipse.ui.actions.RetargetAction.propagateChange(RetargetAction.java:204)
    at org.eclipse.ui.SubActionBars.firePropertyChange(SubActionBars.java:289)
    at org.eclipse.ui.SubActionBars.fireActionHandlersChanged(SubActionBars.java:273)
    at org.eclipse.ui.SubActionBars.updateActionBars(SubActionBars.java:603)
    at org.eclipse.compare.internal.CompareHandlerService.updateActionBars(CompareHandlerService.java:131)
    at org.eclipse.compare.internal.CompareHandlerService.updatePaneActionHandlers(CompareHandlerService.java:161)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer.connectGlobalActions(TextMergeViewer.java:2784)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer.setActiveViewer(TextMergeViewer.java:2719)
    at org.eclipse.compare.contentmergeviewer.TextMergeViewer$22.focusLost(TextMergeViewer.java:2682)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:147)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4646)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1528)
    at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:3433)
    at org.eclipse.swt.widgets.Canvas.sendFocusEvent(Canvas.java:80)
    at org.eclipse.swt.widgets.Display.checkFocus(Display.java:744)
    at org.eclipse.swt.widgets.Shell.makeFirstResponder(Shell.java:1317)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:6522)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSend_bool(Native Method)
    at org.eclipse.swt.internal.cocoa.NSWindow.makeFirstResponder(NSWindow.java:197)
    at org.eclipse.swt.widgets.Control.forceFocus(Control.java:1472)
    at org.eclipse.swt.widgets.Control.forceFocus(Control.java:1452)
    at org.eclipse.swt.widgets.Control.setFocus(Control.java:3880)
    at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1129)
    at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1127)
    at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1127)
    at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1127)
    at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1127)
    at org.eclipse.swt.widgets.Control.fixFocus(Control.java:1377)
    at org.eclipse.swt.widgets.Control.setEnabled(Control.java:3860)
    at org.eclipse.ui.internal.WorkbenchWindow.disableControl(WorkbenchWindow.java:2278)
    at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2324)
    at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:278)
    at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:260)
    at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:207)
    at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:150)
    at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3802)
    at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3815)
    at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:82)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:317)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:251)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:308)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:580)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:647)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:439)
    at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:96)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1217)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4641)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1532)
    at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1561)
    at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1557)
    at org.eclipse.swt.widgets.Canvas.sendKeyEvent(Canvas.java:522)
    at org.eclipse.swt.widgets.Control.doCommandBySelector(Control.java:1085)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:6492)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
    at org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:59)
    at org.eclipse.swt.widgets.Composite.keyDown(Composite.java:607)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:6324)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
    at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:236)
    at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2264)
    at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2511)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:6444)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
    at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:5692)
    at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5831)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
    at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:117)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3986)
    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:643)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
    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.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    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)
Vorherrschende Sprache
Java
Sterne
203
Forks
76
Ø Merge
1 T. 5 Std.
Gemergte PRs (30 T.)
30

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus eclipse-wildwebdeveloper/wildwebdeveloper

Alle Issues in eclipse-wildwebdeveloper/wildwebdeveloper

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.