[101062] Error when Processing Dirty Regions / Updating JSP Index
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPEL.jj b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPEL.jj
index c9284ae..d2051bd 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPEL.jj
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPEL.jj
@@ -162,12 +162,12 @@
 {/*@bgen(jjtree) Expression */

         try {

 /*@egen*/

-	LOOKAHEAD(ChoiceExpression()) ChoiceExpression() | OrExpression()/*@bgen(jjtree)*/

-                                                                          {

-                                                                            jjtree.closeNodeScope(jjtn000, true);

-                                                                            jjtc000 = false;

-                                                                            jjtreeCloseNodeScope(jjtn000);

-                                                                          }

+	(LOOKAHEAD(ChoiceExpression()) ChoiceExpression() | OrExpression())/*@bgen(jjtree)*/

+                                                                            {

+                                                                              jjtree.closeNodeScope(jjtn000, true);

+                                                                              jjtc000 = false;

+                                                                              jjtreeCloseNodeScope(jjtn000);

+                                                                            }

 /*@egen*/ { return jjtn000; }/*@bgen(jjtree)*/

         } catch (Throwable jjte000) {

           if (jjtc000) {

diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPEL.jjt b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPEL.jjt
index c7359c3..70bc127 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPEL.jjt
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPEL.jjt
@@ -155,7 +155,7 @@
 

 ASTExpression Expression() : {}

 {

-	LOOKAHEAD(ChoiceExpression()) ChoiceExpression() | OrExpression() { return jjtThis; }

+	(LOOKAHEAD(ChoiceExpression()) ChoiceExpression() | OrExpression()) { return jjtThis; }

 }

 

 void OrExpression() #OrExpression(>1) : 

diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParser.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParser.java
index fa3b698..f0fd821 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParser.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParser.java
@@ -46,10 +46,6 @@
         case EMPTY:
         case IDENTIFIER:
           OrExpression();
-                                                                            jjtree.closeNodeScope(jjtn000, true);
-                                                                            jjtc000 = false;
-                                                                            jjtreeCloseNodeScope(jjtn000);
-                                                                            {if (true) return jjtn000;}
           break;
         default:
           jj_la1[0] = jj_gen;
@@ -57,6 +53,10 @@
           throw new ParseException();
         }
       }
+                                                                              jjtree.closeNodeScope(jjtn000, true);
+                                                                              jjtc000 = false;
+                                                                              jjtreeCloseNodeScope(jjtn000);
+                                                                              {if (true) return jjtn000;}
     } catch (Throwable jjte000) {
           if (jjtc000) {
             jjtree.clearNodeScope(jjtn000);
@@ -948,6 +948,11 @@
     return false;
   }
 
+  final private boolean jj_3_1() {
+    if (jj_3R_9()) return true;
+    return false;
+  }
+
   final private boolean jj_3R_24() {
     if (jj_3R_26()) return true;
     Token xsp;
@@ -958,11 +963,6 @@
     return false;
   }
 
-  final private boolean jj_3_1() {
-    if (jj_3R_9()) return true;
-    return false;
-  }
-
   final private boolean jj_3R_11() {
     if (jj_3R_14()) return true;
     Token xsp;
@@ -978,6 +978,11 @@
     return false;
   }
 
+  final private boolean jj_3R_16() {
+    if (jj_3R_9()) return true;
+    return false;
+  }
+
   final private boolean jj_3R_22() {
     if (jj_3R_24()) return true;
     Token xsp;
@@ -1009,11 +1014,6 @@
     return false;
   }
 
-  final private boolean jj_3R_16() {
-    if (jj_3R_9()) return true;
-    return false;
-  }
-
   final private boolean jj_3R_38() {
     if (jj_scan_token(LBRACKET)) return true;
     if (jj_3R_12()) return true;