| Summary: | [document] IStructuredDocumentRegion management failed. | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [WebTools] WTP Source Editing | Reporter: | Patric Rufflar <patric> | ||||||||||
| Component: | wst.xml | Assignee: | Salvador Zalapa <zalapa> | ||||||||||
| Status: | NEW --- | QA Contact: | Nick Sandonato <nsand.dev> | ||||||||||
| Severity: | normal | ||||||||||||
| Priority: | P3 | CC: | eclipsebugs, harawata, janek.lb, nsand.dev | ||||||||||
| Version: | unspecified | Flags: | zalapa:
review?
(nsand.dev) |
||||||||||
| Target Milestone: | Future | ||||||||||||
| Hardware: | PC | ||||||||||||
| OS: | Windows XP | ||||||||||||
| Whiteboard: | |||||||||||||
| Attachments: |
|
||||||||||||
|
Description
Patric Rufflar
I saw this exception also during formatting a jsp Hi, Patric. Do you have an example source file that was problematic for you? This may very well be dependent on the contents of the source file. Created attachment 193679 [details]
File to reproduce the bug
Hi Nick,
I am now able to reproduce the bug.
Open the attached file in a jsp editor.
Mark lines 110 - 120
Press ALT-Down and keep holding the keys down and have a look at the opened error view.
Please note that I saw this bug also without using ALT-Down, so there are more "regular" cases than ALT-Down which will hit this bug.
Created attachment 202703 [details]
PHP file also experiencing problem during editing
Got same exception editing attached Drupal page template PHP file in Mac env. What I saw while editing was that trying to type in a <div> tag or closing <div> tag caused characters to show up out of order (look at line 155 -- I tried typing that in as </div> more than once. I kept getting the mixed up output. The Eclipse error view showed the exception from this bug report as well as 2 other exceptions:
1) Unhandled event loop exception
java.lang.Error: Error: could not match input
at org.eclipse.wst.xml.core.internal.parser.XML10Names.zzScanError(XML10Names.java:473)
at org.eclipse.wst.xml.core.internal.parser.XML10Names.isValidXML10Name(XML10Names.java:588)
at org.eclipse.wst.xml.core.internal.parser.XML10Names.isValidXML10Name(XML10Names.java:271)
at org.eclipse.wst.xml.core.internal.provisional.NameValidator.isValid(NameValidator.java:50)
at org.eclipse.wst.xml.core.internal.document.DocumentImpl.isValidName(DocumentImpl.java:1015)
at org.eclipse.wst.xml.core.internal.document.DocumentImpl.checkTagNameValidity(DocumentImpl.java:258)
at org.eclipse.php.internal.core.documentModel.dom.DOMDocumentForPHP.createElement(DOMDocumentForPHP.java:44)
at org.eclipse.wst.xml.core.internal.document.XMLModelParser.insertStartTag(XMLModelParser.java:1482)
at org.eclipse.wst.xml.core.internal.document.XMLModelParser.insertStructuredDocumentRegion(XMLModelParser.java:1510)
at org.eclipse.wst.xml.core.internal.document.XMLModelParser.replaceStructuredDocumentRegions(XMLModelParser.java:2354)
at org.eclipse.wst.xml.core.internal.document.DOMModelImpl.handleRefresh(DOMModelImpl.java:524)
at org.eclipse.wst.xml.core.internal.document.DOMModelImpl.nodesReplaced(DOMModelImpl.java:742)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument._fireEvent(BasicStructuredDocument.java:600)
.....
2) assertion failed:
org.eclipse.core.runtime.AssertionFailedException: assertion failed:
at org.eclipse.core.runtime.Assert.isTrue(Assert.java:110)
at org.eclipse.core.runtime.Assert.isTrue(Assert.java:96)
at org.eclipse.ui.internal.texteditor.quickdiff.DocumentLineDiffer.handleAboutToBeChanged(DocumentLineDiffer.java:794)
at org.eclipse.ui.internal.texteditor.quickdiff.DocumentLineDiffer.documentAboutToBeChanged(DocumentLineDiffer.java:763)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument._fireDocumentAboutToChange(BasicStructuredDocument.java:389)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.fireDocumentAboutToChanged(BasicStructuredDocument.java:1120)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.internalReplaceText(BasicStructuredDocument.java:1912)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2423)
at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2408)
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:141)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.wst.sse.ui.EditorExecutionContext.execute(EditorExecutionContext.java:149)
at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.replaceText(JobSafeStructuredDocument.java:144)
at org.eclipse.wst.sse.ui.internal.StructuredDocumentToTextAdapter.replaceTextRange(StructuredDocumentToTextAdapter.java:1187)
at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7180)
at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7994)
......
My environment:
eclipse.buildId=I20110613-1736
java.version=1.6.0_26
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments: -product org.eclipse.epp.package.jee.product -keyring /Users/yasmin/.eclipse_keyring -showlocation
Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.jee.product -keyring /Users/yasmin/.eclipse_keyring -showlocation
For me, the problem appears when typing the < character in some places in a mixed PHP/HTML file. It only happens when the tag nesting is deep, for instance 3 levels of <div>'s The exception is accompanied by the following exception: java.lang.Error: Error: could not match input at org.eclipse.wst.xml.core.internal.parser.XML10Names.zzScanError(XML10Names.java:473) at org.eclipse.wst.xml.core.internal.parser.XML10Names.isValidXML10Name(XML10Names.java:588) at org.eclipse.wst.xml.core.internal.parser.XML10Names.isValidXML10Name(XML10Names.java:271) at org.eclipse.wst.xml.core.internal.provisional.NameValidator.isValid(NameValidator.java:50) at org.eclipse.wst.xml.core.internal.document.DocumentImpl.isValidName(DocumentImpl.java:1015) at org.eclipse.wst.xml.core.internal.document.DocumentImpl.checkTagNameValidity(DocumentImpl.java:258) at org.eclipse.php.internal.core.documentModel.dom.DOMDocumentForPHP.createElement(DOMDocumentForPHP.java:44) at org.eclipse.wst.xml.core.internal.document.XMLModelParser.insertStartTag(XMLModelParser.java:1482) at org.eclipse.wst.xml.core.internal.document.XMLModelParser.insertStructuredDocumentRegion(XMLModelParser.java:1510) at org.eclipse.wst.xml.core.internal.document.XMLModelParser.replaceStructuredDocumentRegions(XMLModelParser.java:2354) at org.eclipse.wst.xml.core.internal.document.DOMModelImpl.nodesReplaced(DOMModelImpl.java:737) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument._fireEvent(BasicStructuredDocument.java:600) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.fireStructuredDocumentEvent(BasicStructuredDocument.java:1198) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.internalReplaceText(BasicStructuredDocument.java:1979) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2423) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2408) 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:141) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.wst.sse.ui.EditorExecutionContext.execute(EditorExecutionContext.java:149) at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.replaceText(JobSafeStructuredDocument.java:144) at org.eclipse.wst.sse.ui.internal.StructuredDocumentToTextAdapter.replaceTextRange(StructuredDocumentToTextAdapter.java:1187) at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7180) at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7994) at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2456) at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5911) at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5941) at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5635) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) at org.eclipse.swt.widgets.Widget.sendIMKeyEvent(Widget.java:1344) at org.eclipse.swt.widgets.Control.gtk_commit(Control.java:2840) at org.eclipse.swt.widgets.Canvas.gtk_commit(Canvas.java:160) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1733) at org.eclipse.swt.widgets.Control.windowProc(Control.java:5016) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4408) at org.eclipse.swt.internal.gtk.OS._gtk_im_context_filter_keypress(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_im_context_filter_keypress(OS.java:7821) at org.eclipse.swt.widgets.Control.filterKey(Control.java:2250) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3012) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:734) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1743) at org.eclipse.swt.widgets.Control.windowProc(Control.java:5016) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4408) 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:8422) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245) 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:2276) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:344) 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:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) Same issue (while editing PHP) over here. After one of these occur PHP validation beings to choke up as well.. Created attachment 206456 [details]
My error log -- all 4 entires were generated by this issue
*** Bug 355298 has been marked as a duplicate of this bug. *** This issue is pretty easy to reproduce. With the following snippet code:
<html>
<table>
<TR>
<TR a="a">
<TD b="b"></TD>
<td>
</TR>
</table>
</html>
Try to move some endTagOmissible element or try to modify and undo, some element an the exception is going to be logged. The issue is that the model is being corrupted and the elements are placed in a wrong order into the model. BTW following the instructions from comment 3, the issue happens as well but it is a little bit difficult to visualize. I am attaching a first patch version to review.
Created attachment 232664 [details]
First patch
Yes, I am in compliance with the Certificate of Origin The changes are a little risky at this point. I'll push this out with the intention of revisiting in the next release. |