ST4 saving javascript changes from compare editor fails

Ouverte
#1,092 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
25/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
java, javascript
Domaine
desktop, devtools

Piste de recherche

Reproduisez l’échec de l’enregistrement de l’éditeur de comparaison en suivant les étapes indiquées pour STS4 4.17.2 sur macOS ARM, puis commencez par GenericEditorMergeViewer.configureTextViewer et l’entrée de pile TextViewer.setHyperlinkPresenter. C’est terminé lorsque les modifications JavaScript effectuées de chaque côté de l’éditeur de comparaison sont enregistrées correctement sans l’IllegalStateException.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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)
Langage dominant
Java
Étoiles
203
Forks
76
Merge moyen
1 j 5 h
PR mergées (30 j)
30

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de eclipse-wildwebdeveloper/wildwebdeveloper

Toutes les issues de eclipse-wildwebdeveloper/wildwebdeveloper

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.