Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 343355

Summary: [parser] Error in JSP parser causes several exceptions
Product: [WebTools] WTP Source Editing Reporter: Patric Rufflar <patric>
Component: wst.sseAssignee: Nick Sandonato <nsand.dev>
Status: RESOLVED FIXED QA Contact: Nitin Dahyabhai <thatnitind>
Severity: major    
Priority: P2    
Version: unspecified   
Target Milestone: 3.4.2   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
diagnostic image none

Description Patric Rufflar CLA 2011-04-20 05:03:53 EDT
Build Identifier: 3.2.3

An error in the parser causes several Exceptions on a malformed region, e.g.:

java.lang.NegativeArraySizeException
	at org.eclipse.wst.sse.core.internal.text.SubSetTextStore._get(SubSetTextStore.java:63)
	at org.eclipse.wst.sse.core.internal.text.SubSetTextStore.get(SubSetTextStore.java:83)
	at org.eclipse.wst.sse.core.internal.text.MinimalDocument.get(MinimalDocument.java:142)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocumentRegion.getText(BasicStructuredDocumentRegion.java:304)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocumentRegion.sameTextAs(BasicStructuredDocumentRegion.java:476)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocumentRegion.sameAs(BasicStructuredDocumentRegion.java:428)
	at org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser.regionCheck(StructuredDocumentReParser.java:1210)
	at org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser.regionCheck(StructuredDocumentReParser.java:1130)
	at org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser.minimumEvent(StructuredDocumentReParser.java:993)
	at org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser._core_reparse_update_model(StructuredDocumentReParser.java:346)
	at org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser.core_reparse(StructuredDocumentReParser.java:711)
	at org.eclipse.jst.jsp.core.internal.parser.JSPReParser.reparse(JSPReParser.java:143)
	at org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser.reparse(StructuredDocumentReParser.java:1291)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.updateModel(BasicStructuredDocument.java:2709)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.internalReplaceText(BasicStructuredDocument.java:1923)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2419)
	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2404)
	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.core.internal.text.BasicStructuredDocument.replace(BasicStructuredDocument.java:2364)
	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:103)
	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.replace(JobSafeStructuredDocument.java:106)
	at org.eclipse.jface.text.DefaultDocumentAdapter.replaceTextRange(DefaultDocumentAdapter.java:248)
	at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7172)
	at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7986)
	at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2459)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5932)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5962)
	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5656)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1099)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1508)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4270)
	at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4162)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	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:369)
	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:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)


Reproducible: Always

Steps to Reproduce:
Paste the following in a jsp editor:

<script><%
<%%>


Place the cursor at the end of the first line and try to type some characters.
Comment 1 Nitin Dahyabhai CLA 2011-04-20 15:08:16 EDT
Created attachment 193742 [details]
diagnostic image
Comment 2 Nick Sandonato CLA 2012-12-12 16:57:49 EST
This looks to be resolved now, likely as a result of some of the changes in Bug 344723.