This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 470335 - Vex editor shows null pointer exception when same file edited by other editor.
Summary: Vex editor shows null pointer exception when same file edited by other editor.
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: 1.1.0   Edit
Hardware: PC Windows 7
: P3 blocker with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Carsten Hiesserich CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-06-17 03:37 EDT by vaibhav malhotra CLA
Modified: 2015-06-24 14:55 EDT (History)
3 users (show)

See Also:


Attachments
Error screenshot. (113.52 KB, image/png)
2015-06-17 03:37 EDT, vaibhav malhotra CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description vaibhav malhotra CLA 2015-06-17 03:37:36 EDT
Created attachment 254497 [details]
Error  screenshot.

Eclipse :Luna
eclipse.buildId =4.4.2.M20150204-1700
java.version=1.8.0_45
Vex Editor:  1.1.0.201411222129	

Steps to replicate.

1. Open same file in Vex and default Eclipse XML Editor.
2. Edit the File in the eclipse XML editor.
3. When you switch to the VEX Editor the following exception is shown.

!ENTRY org.eclipse.vex.ui 4 0 2015-06-17 13:02:54.483
!MESSAGE Unexpected error opening html.xml. Please report a bug at https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Mylyn%20Docs%20Vex
!STACK 0
java.lang.NullPointerException
	at org.eclipse.vex.core.provisional.dom.ContentPosition.<init>(ContentPosition.java:55)
	at org.eclipse.vex.ui.internal.editor.VexEditor.setInputFromProvider(VexEditor.java:808)
	at org.eclipse.vex.ui.internal.editor.VexEditor.handleEditorActivated(VexEditor.java:1332)
	at org.eclipse.vex.ui.internal.editor.VexEditor.access$17(VexEditor.java:1322)
	at org.eclipse.vex.ui.internal.editor.VexEditor$ActivationListener.handleActivation(VexEditor.java:1516)
	at org.eclipse.vex.ui.internal.editor.VexEditor$ActivationListener.partActivated(VexEditor.java:1469)
	at org.eclipse.ui.internal.PartService$1.run(PartService.java:84)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.PartService.partActivated(PartService.java:81)
	at org.eclipse.ui.internal.WorkbenchPage$16.run(WorkbenchPage.java:4861)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:4858)
	at org.eclipse.ui.internal.WorkbenchPage.access$18(WorkbenchPage.java:4846)
	at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(WorkbenchPage.java:210)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$3.run(PartServiceImpl.java:241)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivated(PartServiceImpl.java:238)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:692)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:620)
	at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:106)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer$1.handleEvent(ContributedPartRenderer.java:61)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
	at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1453)
	at org.eclipse.swt.widgets.Shell.WM_MOUSEACTIVATE(Shell.java:2334)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4654)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1626)
	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2075)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:79)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
	at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3141)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3756)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
Comment 1 Florian Thienel CLA 2015-06-19 13:15:26 EDT
Spotted the problem:
org.eclipse.vex.ui.internal.editor.VexEditor.setInputFromProvider(VexEditor.java:808) calls new ContentPosition(null, ...); should use the document to which the nodeAtCaret is associated.
Comment 2 Eclipse Genie CLA 2015-06-24 13:51:51 EDT
New Gerrit change created: https://git.eclipse.org/r/50832
Comment 3 Carsten Hiesserich CLA 2015-06-24 14:09:52 EDT
The new ContentPosition(null, ...) constructor was used in an early version of the ContentPosition implementation. Somehow this and a couple of other calls have not been updated when the class was changed.
The change fixes all this calls and adds some additional tests.