[344723] [parser] StackOverFlowError in erroneous jsp file - destabilizing issue
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java index 2ed137d..09f05df 100644 --- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java +++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java
@@ -1,7 +1,7 @@ -/* The following code was generated by JFlex 1.2.2 on 10/17/11 2:40 PM */ +/* The following code was generated by JFlex 1.2.2 on 11/29/12 5:08 PM */ /******************************************************************************* - * Copyright (c) 2004, 2011 IBM Corporation and others. + * Copyright (c) 2004, 2012 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -36,8 +36,8 @@ /** * This class is a scanner generated by * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2 - * on 10/17/11 2:40 PM from the specification file - * <tt>file:/Users/dev/workspaces/indigo/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt> + * on 11/29/12 5:08 PM from the specification file + * <tt>file:/Users/dev/git/wtp/webtools.sourceediting/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt> */ public class JSPTokenizer implements BlockTokenizer, DOMJSPRegionContexts { @@ -1415,7 +1415,7 @@ // Look for a JSP beginning at current-searchStringLength; if so, backup and switch scanner states to handle it. // Ensure that we've not encountered a complete block (<%%>) that was *shorter* than the closeTagString and // thus found twice at current-targetLength [since the first scan would have come out this far anyway]. - if(checkJSPs && yy_currentPos > searchStringLength && yy_currentPos - searchStringLength != fLastInternalBlockStart && + if(checkJSPs && yy_currentPos > searchStringLength && yy_currentPos - searchStringLength != fLastInternalBlockStart && yy_currentPos - searchStringLength > yy_startRead && yy_buffer[yy_currentPos - searchStringLength] == '<' && yy_buffer[yy_currentPos - searchStringLength + 1] == '%') { fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength; yy_currentPos = yy_markedPos + 1;
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex index 0c21b1c..04f9457 100644 --- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex +++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2011 IBM Corporation and others. + * Copyright (c) 2004, 2012 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -461,7 +461,7 @@ // Look for a JSP beginning at current-searchStringLength; if so, backup and switch scanner states to handle it. // Ensure that we've not encountered a complete block (<%%>) that was *shorter* than the closeTagString and // thus found twice at current-targetLength [since the first scan would have come out this far anyway]. - if(checkJSPs && yy_currentPos > searchStringLength && yy_currentPos - searchStringLength != fLastInternalBlockStart && + if(checkJSPs && yy_currentPos > searchStringLength && yy_currentPos - searchStringLength != fLastInternalBlockStart && yy_currentPos - searchStringLength > yy_startRead && yy_buffer[yy_currentPos - searchStringLength] == '<' && yy_buffer[yy_currentPos - searchStringLength + 1] == '%') { fLastInternalBlockStart = yy_markedPos = yy_currentPos - searchStringLength; yy_currentPos = yy_markedPos + 1;