Vex model mess: Cannot find insert position for #text [was #8074]
What steps will reproduce the problem?
- open a longer prose file, e.g. Die Judenbuche
- switch to source view, put the cursor into a longer paragraph
- try to surround some text with :
- type <hi rend="italic>", eclipse will enter
- cut the
- paste it after the paragraph
In some situations this will mess up Vex' content model. Here is an exception I found in the log file:
{code}
-- Error Details --
Date: Wed Feb 24 13:56:13 CET 2010
Message: A structured model client, LinkedElement(636..1,550, hi/hi@[3035, 3053] ()@[3120, 3125] ()): \n\n\n Gutsbesitzer, denen die niedere Gerichtsbarkeit zustand, straften und belohnten nach ihrer in den meisten Fällen redlichen Einsicht; der Untergebene tat, was ihm ausführbar und mit einem etwas weiten Gewissen verträglich schien, und nur dem Verlierenden fiel es zuweilen ein, in alten staubichten Urkunden nachzuschlagen. Es ist schwer, jene Zeit unparteiisch ins Auge zu fassen; sie ist seit ihrem Verschwinden entweder hochmütig getadelt oder albern gelobt worden, da den, der sie erlebte, zuviel teure Erinnerungen blenden und der Spätergeborene sie nicht begreift. Soviel darf man indessen behaupten, daß die Form schwächer, der Kern fester, Vergehen häufiger, Gewissenlosigkeit seltener waren. Denn wer nach seiner Überzeugung handelt, und sei sie noch so mangelhaft, kann nie ganz zugrunde gehen, wogegen nichts seelentötender wirkt, als gegen das innere Rechtsgefühl das äußere Recht in Anspruch nehmen. threw following exception during adapter notification (ADD )
Severity: Error
Product: Eclipse SDK 3.5.1.R35x_v20090827 (org.eclipse.sdk.ide)
Plugin: org.eclipse.wst.sse.core
Session Data:
eclipse.buildId=unknown
java.version=1.6.0_15
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Framework arguments: -product info.textgrid.lab.core.application.product
Command-line arguments: -product info.textgrid.lab.core.application.product -data /home/vitt/TextGrid/Software/Workspaces/Lab-Trunk/../runtime-textgridlab.product -dev file:/home/vitt/TextGrid/Software/Workspaces/Lab-Trunk/.metadata/.plugins/org.eclipse.pde.core/textgridlab.product/dev.properties -os linux -ws gtk -arch x86
Exception Stack Trace:
java.lang.IllegalArgumentException: Cannot find insert position for #text(Meinung, der Gewohnheit und der durch Vernachlässigung entstandenen)[3053, 3120] (Meinung, der Gewohnheit und der durch Vernachlässigung entstandenen) in LinkedElement(636..1,550, hi/hi
[3035, 3053] ()@[3120, 3125] ()): \n\n\n Gutsbesitzer, denen die niedere Gerichtsbarkeit zustand, straften und belohnten nach ihrer in den meisten Fällen redlichen Einsicht; der Untergebene tat, was ihm ausführbar und mit einem etwas weiten Gewissen verträglich schien, und nur dem Verlierenden fiel es zuweilen ein, in alten staubichten Urkunden nachzuschlagen. Es ist schwer, jene Zeit unparteiisch ins Auge zu fassen; sie ist seit ihrem Verschwinden entweder hochmütig getadelt oder albern gelobt worden, da den, der sie erlebte, zuviel teure Erinnerungen blenden und der Spätergeborene sie nicht begreift. Soviel darf man indessen behaupten, daß die Form schwächer, der Kern fester, Vergehen häufiger, Gewissenlosigkeit seltener waren. Denn wer nach seiner Überzeugung handelt, und sei sie noch so mangelhaft, kann nie ganz zugrunde gehen, wogegen nichts seelentötender wirkt, als gegen das innere Rechtsgefühl das äußere Recht in Anspruch nehmen.
at net.sf.vex.dom.linked.LinkedElement.findInsertPositionFor(LinkedElement.java:534)
at net.sf.vex.dom.linked.LinkedElement.addDomChildText(LinkedElement.java:425)
at net.sf.vex.dom.linked.LinkedElement.addDomChild(LinkedElement.java:337)
at net.sf.vex.dom.linked.LinkedElement.notifyChanged(LinkedElement.java:249)
at org.eclipse.wst.sse.core.internal.provisional.AbstractNotifier.notify(AbstractNotifier.java:201)
at org.eclipse.wst.xml.core.internal.document.XMLModelNotifierImpl.notify(XMLModelNotifierImpl.java:238)
at org.eclipse.wst.xml.core.internal.document.XMLModelNotifierImpl.notifyDeferred(XMLModelNotifierImpl.java:340)
at org.eclipse.wst.xml.core.internal.document.XMLModelNotifierImpl.endChanging(XMLModelNotifierImpl.java:178)
at org.eclipse.wst.xml.core.internal.document.DOMModelImpl.changedModel(DOMModelImpl.java:163)
at org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel$DocumentToModelNotifier.nodesReplaced(AbstractStructuredModel.java:152)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument._fireEvent(BasicStructuredDocument.java:596)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.fireStructuredDocumentEvent(BasicStructuredDocument.java:1195)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.internalReplaceText(BasicStructuredDocument.java:1975)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2415)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2400)
at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.access$2(JobSafeStructuredDocument.java:1)
at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument$3.run(JobSafeStructuredDocument.java:137)
at org.eclipse.wst.sse.ui.EditorExecutionContext.execute(EditorExecutionContext.java:147)
at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.replaceText(JobSafeStructuredDocument.java:144)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replace(BasicStructuredDocument.java:2360)
at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.access$0(JobSafeStructuredDocument.java:1)
at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument$1.run(JobSafeStructuredDocument.java:88)
at org.eclipse.wst.sse.ui.EditorExecutionContext.execute(EditorExecutionContext.java:147)
at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.replace(JobSafeStructuredDocument.java:95)
at org.eclipse.jface.text.DefaultDocumentAdapter.replaceTextRange(DefaultDocumentAdapter.java:248)
at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:6634)
at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7442)
at org.eclipse.swt.custom.StyledText.paste(StyledText.java:6690)
at org.eclipse.jface.text.TextViewer.paste(TextViewer.java:4026)
at org.eclipse.jface.text.TextViewer.doOperation(TextViewer.java:3970)
at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:921)
at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1450)
at org.eclipse.wst.sse.ui.internal.StructuredTextViewer.doOperation(StructuredTextViewer.java:431)
at org.eclipse.ui.texteditor.TextOperationAction$1.run(TextOperationAction.java:131)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.texteditor.TextOperationAction.run(TextOperationAction.java:129)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:470)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:824)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:880)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:569)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:510)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:125)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1467)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1175)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1200)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1185)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1212)
at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:706)
at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:2837)
at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:703)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1570)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4587)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4191)
at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:7588)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1185)
at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1860)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3110)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at info.textgrid.lab.core.application.Application.start(Application.java:28)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
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:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287) {code}