You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2008/08/18 22:11:45 UTC

svn commit: r686862 - in /geronimo/server/trunk: ./ repository/ repository/org/apache/tomcat/ repository/org/apache/tomcat/catalina/6.0.18-G678601/ repository/org/apache/tomcat/jasper-el/ repository/org/apache/tomcat/jasper-el/6.0.18-G678601/ repositor...

Author: dwoods
Date: Mon Aug 18 13:11:45 2008
New Revision: 686862

URL: http://svn.apache.org/viewvc?rev=686862&view=rev
Log:
GERONIMO-4245 pull in ELParser fix from Tomcat 6.0.x (6.0.19)

Added:
    geronimo/server/trunk/repository/org/apache/tomcat/ELParser-6.0.19-r685708.patch
    geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/
    geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/
    geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar   (with props)
    geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar.md5
Modified:
    geronimo/server/trunk/pom.xml
    geronimo/server/trunk/repository/org/apache/tomcat/6.0.18-G678601.README.TXT
    geronimo/server/trunk/repository/org/apache/tomcat/catalina/6.0.18-G678601/catalina-6.0.18-G678601.jar
    geronimo/server/trunk/repository/org/apache/tomcat/catalina/6.0.18-G678601/catalina-6.0.18-G678601.jar.md5
    geronimo/server/trunk/repository/org/apache/tomcat/jasper/6.0.18-G678601/jasper-6.0.18-G678601.jar
    geronimo/server/trunk/repository/org/apache/tomcat/jasper/6.0.18-G678601/jasper-6.0.18-G678601.jar.md5
    geronimo/server/trunk/repository/pom.xml

Modified: geronimo/server/trunk/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/pom.xml?rev=686862&r1=686861&r2=686862&view=diff
==============================================================================
--- geronimo/server/trunk/pom.xml (original)
+++ geronimo/server/trunk/pom.xml Mon Aug 18 13:11:45 2008
@@ -1087,7 +1087,7 @@
             <dependency>
                 <groupId>org.apache.tomcat</groupId>
                 <artifactId>jasper-el</artifactId>
-                <version>${tomcatVersion}</version>
+                <version>6.0.18-G678601</version>
             </dependency>
 
             <dependency>

Modified: geronimo/server/trunk/repository/org/apache/tomcat/6.0.18-G678601.README.TXT
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/repository/org/apache/tomcat/6.0.18-G678601.README.TXT?rev=686862&r1=686861&r2=686862&view=diff
==============================================================================
--- geronimo/server/trunk/repository/org/apache/tomcat/6.0.18-G678601.README.TXT (original)
+++ geronimo/server/trunk/repository/org/apache/tomcat/6.0.18-G678601.README.TXT Mon Aug 18 13:11:45 2008
@@ -1,7 +1,7 @@
 Private Build of Tomcat for Geronimo.   
 
 How to build Tomcat 6_0_18 with modifications for Geronimo:
-
+-----------------------------------------------------------
 Checkout tomcat 6.0.18
   svn co  https://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_18  tomcat_6_0_18
   
@@ -17,8 +17,8 @@
 Last Changed Date: 2008-07-21 20:07:28 -0400 (Mon, 21 Jul 2008)
 
 
-Apply the patch
-
+Apply the Geronimo required patch
+---------------------------------
 cd tomcat_6_0_18
 patch -p0 -u < TOMCAT_6_0_18-G678601.patch
 Answer 'y' to any prompts of "Reversed (or previously applied) patch detected!  Assume -R? [n]"
@@ -36,7 +36,14 @@
   java/org/apache/catalina/deploy/Injectable.java
   java/org/apache/catalina/deploy/InjectionTarget.java
  
+Apply the ELParse patch from Tomcat 6.0.x (6.0.19) to fix Bug45511
+   https://issues.apache.org/bugzilla/show_bug.cgi?id=45511
+------------------------------------------------------------------
+patch -p0 -u < ELParser-6.0.19-r685708.patch
+
+
 Build tomcat
+------------
   cd tomcat_6_0_18
   Per tomcat build instructions install ant-1.6.5 or later and set ANT_HOME as well as add ant/bin to PATH
   You must run as the super user for the first build that downloads more ant & eclipse artifacts
@@ -45,19 +52,25 @@
   ant - to build tomcat artifacts
   
 Copy to appropriate jars and rename into geronimo/repository
+------------------------------------------------------------
   cd tomcat_6_0_18
   cp output/build/lib/catalina.jar <geronimo-root>/repository/org/apache/tomcat/catalina/6.0.18-G678601/catalina-6.0.18-G678601.jar
   cp output/build/lib/jasper.jar   <geronimo-root>/repository/org/apache/tomcat/jasper/6.0.18-G678601/jasper-6.0.18-G678601.jar
-  
-How the patch was created (tomcat_6_0_18-G678601.patch):
 
+Copy the patched jasper-el jar over (until 6.0.19 is released)
+--------------------------------------------------------------
+  cp output/build/lib/jasper-el.jar   <geronimo-root>/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar
+
+
+How the patch was created (tomcat_6_0_18-G678601.patch):
+--------------------------------------------------------
 Checkout tomcat 6.0.18
   svn co  https://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_18  tomcat_6_0_18
 
-
 Apply patch from prior Tomcat release (6.0.16)
   patch -p0 -u < TOMCAT_6_0_16-G652117.patch
 
+
 Original way to apply the individual patches
   Apply annotations patch 
     patch -p0 -u < TOMCAT_6_0_14-G604245.patch
@@ -68,3 +81,5 @@
 Create the patch:
   svn diff > TOMCAT_6_0_18-G678601.patch
 
+Update the README, patch file(s) and patched jars in svn.
+

Added: geronimo/server/trunk/repository/org/apache/tomcat/ELParser-6.0.19-r685708.patch
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/repository/org/apache/tomcat/ELParser-6.0.19-r685708.patch?rev=686862&view=auto
==============================================================================
--- geronimo/server/trunk/repository/org/apache/tomcat/ELParser-6.0.19-r685708.patch (added)
+++ geronimo/server/trunk/repository/org/apache/tomcat/ELParser-6.0.19-r685708.patch Mon Aug 18 13:11:45 2008
@@ -0,0 +1,1444 @@
+Index: java/org/apache/el/parser/ELParserTokenManager.java
+===================================================================
+--- java/org/apache/el/parser/ELParserTokenManager.java	(revision 3205)
++++ java/org/apache/el/parser/ELParserTokenManager.java	(working copy)
+@@ -299,22 +299,22 @@
+    switch (pos)
+    {
+       case 0:
++         if ((active0 & 0x40000L) != 0L)
++            return 1;
+          if ((active0 & 0x141d555401c000L) != 0L)
+          {
+             jjmatchedKind = 53;
+-            return 42;
++            return 36;
+          }
+-         if ((active0 & 0x40000L) != 0L)
+-            return 1;
+          return -1;
+       case 1:
+          if ((active0 & 0x41554000000L) != 0L)
+-            return 42;
++            return 36;
+          if ((active0 & 0x1419400001c000L) != 0L)
+          {
+             jjmatchedKind = 53;
+             jjmatchedPos = 1;
+-            return 42;
++            return 36;
+          }
+          return -1;
+       case 2:
+@@ -322,29 +322,29 @@
+          {
+             jjmatchedKind = 53;
+             jjmatchedPos = 2;
+-            return 42;
++            return 36;
+          }
+          if ((active0 & 0x14014000000000L) != 0L)
+-            return 42;
++            return 36;
+          return -1;
+       case 3:
++         if ((active0 & 0x14000L) != 0L)
++            return 36;
+          if ((active0 & 0x180000008000L) != 0L)
+          {
+             jjmatchedKind = 53;
+             jjmatchedPos = 3;
+-            return 42;
++            return 36;
+          }
+-         if ((active0 & 0x14000L) != 0L)
+-            return 42;
+          return -1;
+       case 4:
+          if ((active0 & 0x80000008000L) != 0L)
+-            return 42;
++            return 36;
+          if ((active0 & 0x100000000000L) != 0L)
+          {
+             jjmatchedKind = 53;
+             jjmatchedPos = 4;
+-            return 42;
++            return 36;
+          }
+          return -1;
+       case 5:
+@@ -352,7 +352,7 @@
+          {
+             jjmatchedKind = 53;
+             jjmatchedPos = 5;
+-            return 42;
++            return 36;
+          }
+          return -1;
+       case 6:
+@@ -360,7 +360,7 @@
+          {
+             jjmatchedKind = 53;
+             jjmatchedPos = 6;
+-            return 42;
++            return 36;
+          }
+          return -1;
+       case 7:
+@@ -368,7 +368,7 @@
+          {
+             jjmatchedKind = 53;
+             jjmatchedPos = 7;
+-            return 42;
++            return 36;
+          }
+          return -1;
+       case 8:
+@@ -376,7 +376,7 @@
+          {
+             jjmatchedKind = 53;
+             jjmatchedPos = 8;
+-            return 42;
++            return 36;
+          }
+          return -1;
+       default :
+@@ -495,11 +495,11 @@
+          return jjMoveStringLiteralDfa2_1(active0, 0x8000L);
+       case 101:
+          if ((active0 & 0x40000000L) != 0L)
+-            return jjStartNfaWithStates_1(1, 30, 42);
++            return jjStartNfaWithStates_1(1, 30, 36);
+          else if ((active0 & 0x100000000L) != 0L)
+-            return jjStartNfaWithStates_1(1, 32, 42);
++            return jjStartNfaWithStates_1(1, 32, 36);
+          else if ((active0 & 0x1000000000L) != 0L)
+-            return jjStartNfaWithStates_1(1, 36, 42);
++            return jjStartNfaWithStates_1(1, 36, 36);
+          break;
+       case 105:
+          return jjMoveStringLiteralDfa2_1(active0, 0x4000000000000L);
+@@ -511,17 +511,17 @@
+          return jjMoveStringLiteralDfa2_1(active0, 0x10004000000000L);
+       case 113:
+          if ((active0 & 0x400000000L) != 0L)
+-            return jjStartNfaWithStates_1(1, 34, 42);
++            return jjStartNfaWithStates_1(1, 34, 36);
+          break;
+       case 114:
+          if ((active0 & 0x40000000000L) != 0L)
+-            return jjStartNfaWithStates_1(1, 42, 42);
++            return jjStartNfaWithStates_1(1, 42, 36);
+          return jjMoveStringLiteralDfa2_1(active0, 0x4000L);
+       case 116:
+          if ((active0 & 0x4000000L) != 0L)
+-            return jjStartNfaWithStates_1(1, 26, 42);
++            return jjStartNfaWithStates_1(1, 26, 36);
+          else if ((active0 & 0x10000000L) != 0L)
+-            return jjStartNfaWithStates_1(1, 28, 42);
++            return jjStartNfaWithStates_1(1, 28, 36);
+          break;
+       case 117:
+          return jjMoveStringLiteralDfa2_1(active0, 0x10000L);
+@@ -547,9 +547,9 @@
+    {
+       case 100:
+          if ((active0 & 0x10000000000L) != 0L)
+-            return jjStartNfaWithStates_1(2, 40, 42);
++            return jjStartNfaWithStates_1(2, 40, 36);
+          else if ((active0 & 0x10000000000000L) != 0L)
+-            return jjStartNfaWithStates_1(2, 52, 42);
++            return jjStartNfaWithStates_1(2, 52, 36);
+          break;
+       case 108:
+          return jjMoveStringLiteralDfa3_1(active0, 0x18000L);
+@@ -559,13 +559,13 @@
+          return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L);
+       case 116:
+          if ((active0 & 0x4000000000L) != 0L)
+-            return jjStartNfaWithStates_1(2, 38, 42);
++            return jjStartNfaWithStates_1(2, 38, 36);
+          break;
+       case 117:
+          return jjMoveStringLiteralDfa3_1(active0, 0x4000L);
+       case 118:
+          if ((active0 & 0x4000000000000L) != 0L)
+-            return jjStartNfaWithStates_1(2, 50, 42);
++            return jjStartNfaWithStates_1(2, 50, 36);
+          break;
+       default :
+          break;
+@@ -585,11 +585,11 @@
+    {
+       case 101:
+          if ((active0 & 0x4000L) != 0L)
+-            return jjStartNfaWithStates_1(3, 14, 42);
++            return jjStartNfaWithStates_1(3, 14, 36);
+          break;
+       case 108:
+          if ((active0 & 0x10000L) != 0L)
+-            return jjStartNfaWithStates_1(3, 16, 42);
++            return jjStartNfaWithStates_1(3, 16, 36);
+          break;
+       case 115:
+          return jjMoveStringLiteralDfa4_1(active0, 0x8000L);
+@@ -615,11 +615,11 @@
+          return jjMoveStringLiteralDfa5_1(active0, 0x100000000000L);
+       case 101:
+          if ((active0 & 0x8000L) != 0L)
+-            return jjStartNfaWithStates_1(4, 15, 42);
++            return jjStartNfaWithStates_1(4, 15, 36);
+          break;
+       case 121:
+          if ((active0 & 0x80000000000L) != 0L)
+-            return jjStartNfaWithStates_1(4, 43, 42);
++            return jjStartNfaWithStates_1(4, 43, 36);
+          break;
+       default :
+          break;
+@@ -711,7 +711,7 @@
+    {
+       case 102:
+          if ((active0 & 0x100000000000L) != 0L)
+-            return jjStartNfaWithStates_1(9, 44, 42);
++            return jjStartNfaWithStates_1(9, 44, 36);
+          break;
+       default :
+          break;
+@@ -740,7 +740,7 @@
+ {
+    int[] nextStates;
+    int startsAt = 0;
+-   jjnewStateCnt = 42;
++   jjnewStateCnt = 36;
+    int i = 1;
+    jjstateSet[0] = startState;
+    int j, kind = 0x7fffffff;
+@@ -766,36 +766,23 @@
+                   {
+                      if (kind > 53)
+                         kind = 53;
+-                     jjCheckNAddStates(9, 15);
++                     jjCheckNAddTwoStates(34, 35);
+                   }
+                   else if (curChar == 39)
+-                     jjCheckNAddStates(16, 20);
++                     jjCheckNAddStates(9, 13);
+                   else if (curChar == 34)
+-                     jjCheckNAddStates(21, 25);
++                     jjCheckNAddStates(14, 18);
+                   else if (curChar == 46)
+                      jjCheckNAdd(1);
+                   break;
+-               case 42:
+-                  if ((0x3ff601000000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(36, 37);
+-                  else if (curChar == 40)
+-                  {
+-                     if (kind > 56)
+-                        kind = 56;
+-                  }
+-                  else if (curChar == 58)
+-                     jjstateSet[jjnewStateCnt++] = 38;
++               case 36:
+                   if ((0x3ff001000000000L & l) != 0L)
+                   {
+-                     if (kind > 57)
+-                        kind = 57;
+-                     jjCheckNAdd(41);
++                     if (kind > 54)
++                        kind = 54;
++                     jjCheckNAdd(35);
+                   }
+                   if ((0x3ff001000000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  if ((0x3ff001000000000L & l) != 0L)
+-                     jjCheckNAddStates(26, 28);
+-                  if ((0x3ff001000000000L & l) != 0L)
+                   {
+                      if (kind > 53)
+                         kind = 53;
+@@ -880,15 +867,15 @@
+                   break;
+                case 17:
+                   if (curChar == 34)
+-                     jjCheckNAddStates(21, 25);
++                     jjCheckNAddStates(14, 18);
+                   break;
+                case 18:
+                   if ((0xfffffffbffffffffL & l) != 0L)
+-                     jjCheckNAddStates(29, 31);
++                     jjCheckNAddStates(19, 21);
+                   break;
+                case 20:
+                   if (curChar == 34)
+-                     jjCheckNAddStates(29, 31);
++                     jjCheckNAddStates(19, 21);
+                   break;
+                case 21:
+                   if (curChar == 34 && kind > 12)
+@@ -904,15 +891,15 @@
+                   break;
+                case 25:
+                   if (curChar == 39)
+-                     jjCheckNAddStates(16, 20);
++                     jjCheckNAddStates(9, 13);
+                   break;
+                case 26:
+                   if ((0xffffff7fffffffffL & l) != 0L)
+-                     jjCheckNAddStates(32, 34);
++                     jjCheckNAddStates(22, 24);
+                   break;
+                case 28:
+                   if (curChar == 39)
+-                     jjCheckNAddStates(32, 34);
++                     jjCheckNAddStates(22, 24);
+                   break;
+                case 29:
+                   if (curChar == 39 && kind > 12)
+@@ -931,7 +918,7 @@
+                      break;
+                   if (kind > 53)
+                      kind = 53;
+-                  jjCheckNAddStates(9, 15);
++                  jjCheckNAddTwoStates(34, 35);
+                   break;
+                case 34:
+                   if ((0x3ff001000000000L & l) == 0L)
+@@ -941,35 +928,11 @@
+                   jjCheckNAdd(34);
+                   break;
+                case 35:
+-                  if ((0x3ff001000000000L & l) != 0L)
+-                     jjCheckNAddStates(26, 28);
+-                  break;
+-               case 36:
+-                  if ((0x3ff601000000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(36, 37);
+-                  break;
+-               case 37:
+-                  if (curChar == 58)
+-                     jjstateSet[jjnewStateCnt++] = 38;
+-                  break;
+-               case 38:
+-                  if ((0x1800000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 39:
+-                  if ((0x3ff001000000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 40:
+-                  if (curChar == 40 && kind > 56)
+-                     kind = 56;
+-                  break;
+-               case 41:
+                   if ((0x3ff001000000000L & l) == 0L)
+                      break;
+-                  if (kind > 57)
+-                     kind = 57;
+-                  jjCheckNAdd(41);
++                  if (kind > 54)
++                     kind = 54;
++                  jjCheckNAdd(35);
+                   break;
+                default : break;
+             }
+@@ -987,22 +950,16 @@
+                      break;
+                   if (kind > 53)
+                      kind = 53;
+-                  jjCheckNAddStates(9, 15);
++                  jjCheckNAddTwoStates(34, 35);
+                   break;
+-               case 42:
++               case 36:
+                   if ((0x7fffffe87fffffeL & l) != 0L)
+                   {
+-                     if (kind > 57)
+-                        kind = 57;
+-                     jjCheckNAdd(41);
++                     if (kind > 54)
++                        kind = 54;
++                     jjCheckNAdd(35);
+                   }
+                   if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(36, 37);
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddStates(26, 28);
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+                   {
+                      if (kind > 53)
+                         kind = 53;
+@@ -1011,19 +968,19 @@
+                   break;
+                case 2:
+                   if ((0x2000000020L & l) != 0L)
+-                     jjAddStates(35, 36);
++                     jjAddStates(25, 26);
+                   break;
+                case 10:
+                   if ((0x2000000020L & l) != 0L)
+-                     jjAddStates(37, 38);
++                     jjAddStates(27, 28);
+                   break;
+                case 14:
+                   if ((0x2000000020L & l) != 0L)
+-                     jjAddStates(39, 40);
++                     jjAddStates(29, 30);
+                   break;
+                case 18:
+                   if ((0xffffffffefffffffL & l) != 0L)
+-                     jjCheckNAddStates(29, 31);
++                     jjCheckNAddStates(19, 21);
+                   break;
+                case 19:
+                   if (curChar == 92)
+@@ -1031,11 +988,11 @@
+                   break;
+                case 20:
+                   if (curChar == 92)
+-                     jjCheckNAddStates(29, 31);
++                     jjCheckNAddStates(19, 21);
+                   break;
+                case 22:
+                   if ((0xffffffffefffffffL & l) != 0L)
+-                     jjAddStates(41, 42);
++                     jjAddStates(31, 32);
+                   break;
+                case 23:
+                   if (curChar == 92)
+@@ -1048,7 +1005,7 @@
+                   break;
+                case 26:
+                   if ((0xffffffffefffffffL & l) != 0L)
+-                     jjCheckNAddStates(32, 34);
++                     jjCheckNAddStates(22, 24);
+                   break;
+                case 27:
+                   if (curChar == 92)
+@@ -1056,11 +1013,11 @@
+                   break;
+                case 28:
+                   if (curChar == 92)
+-                     jjCheckNAddStates(32, 34);
++                     jjCheckNAddStates(22, 24);
+                   break;
+                case 30:
+                   if ((0xffffffffefffffffL & l) != 0L)
+-                     jjAddStates(43, 44);
++                     jjAddStates(33, 34);
+                   break;
+                case 31:
+                   if (curChar == 92)
+@@ -1074,27 +1031,11 @@
+                   jjCheckNAdd(34);
+                   break;
+                case 35:
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddStates(26, 28);
+-                  break;
+-               case 36:
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(36, 37);
+-                  break;
+-               case 38:
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 39:
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 41:
+                   if ((0x7fffffe87fffffeL & l) == 0L)
+                      break;
+-                  if (kind > 57)
+-                     kind = 57;
+-                  jjCheckNAdd(41);
++                  if (kind > 54)
++                     kind = 54;
++                  jjCheckNAdd(35);
+                   break;
+                default : break;
+             }
+@@ -1116,9 +1057,9 @@
+                      break;
+                   if (kind > 53)
+                      kind = 53;
+-                  jjCheckNAddStates(9, 15);
++                  jjCheckNAddTwoStates(34, 35);
+                   break;
+-               case 42:
++               case 36:
+                   if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                   {
+                      if (kind > 53)
+@@ -1126,25 +1067,19 @@
+                      jjCheckNAdd(34);
+                   }
+                   if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddStates(26, 28);
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(36, 37);
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(39, 40);
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                   {
+-                     if (kind > 57)
+-                        kind = 57;
+-                     jjCheckNAdd(41);
++                     if (kind > 54)
++                        kind = 54;
++                     jjCheckNAdd(35);
+                   }
+                   break;
+                case 18:
+                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+-                     jjAddStates(29, 31);
++                     jjAddStates(19, 21);
+                   break;
+                case 22:
+                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+-                     jjAddStates(41, 42);
++                     jjAddStates(31, 32);
+                   break;
+                case 24:
+                case 32:
+@@ -1153,11 +1088,11 @@
+                   break;
+                case 26:
+                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+-                     jjAddStates(32, 34);
++                     jjAddStates(22, 24);
+                   break;
+                case 30:
+                   if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+-                     jjAddStates(43, 44);
++                     jjAddStates(33, 34);
+                   break;
+                case 34:
+                   if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+@@ -1167,27 +1102,11 @@
+                   jjCheckNAdd(34);
+                   break;
+                case 35:
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddStates(26, 28);
+-                  break;
+-               case 36:
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(36, 37);
+-                  break;
+-               case 38:
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 39:
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 41:
+                   if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+                      break;
+-                  if (kind > 57)
+-                     kind = 57;
+-                  jjCheckNAdd(41);
++                  if (kind > 54)
++                     kind = 54;
++                  jjCheckNAdd(35);
+                   break;
+                default : break;
+             }
+@@ -1200,16 +1119,16 @@
+          kind = 0x7fffffff;
+       }
+       ++curPos;
+-      if ((i = jjnewStateCnt) == (startsAt = 42 - (jjnewStateCnt = startsAt)))
++      if ((i = jjnewStateCnt) == (startsAt = 36 - (jjnewStateCnt = startsAt)))
+          return curPos;
+       try { curChar = input_stream.readChar(); }
+       catch(java.io.IOException e) { return curPos; }
+    }
+ }
+ static final int[] jjnextStates = {
+-   0, 1, 3, 5, 6, 7, 8, 13, 14, 34, 35, 36, 37, 39, 40, 41, 
+-   26, 27, 29, 30, 31, 18, 19, 21, 22, 23, 35, 36, 37, 18, 19, 21, 
+-   26, 27, 29, 3, 4, 11, 12, 15, 16, 22, 23, 30, 31, 
++   0, 1, 3, 5, 6, 7, 8, 13, 14, 26, 27, 29, 30, 31, 18, 19, 
++   21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11, 12, 15, 16, 22, 
++   23, 30, 31, 
+ };
+ private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+ {
+@@ -1250,7 +1169,7 @@
+ "\154\164", "\76\75", "\147\145", "\74\75", "\154\145", "\75\75", "\145\161", "\41\75", 
+ "\156\145", "\41", "\156\157\164", "\46\46", "\141\156\144", "\174\174", "\157\162", 
+ "\145\155\160\164\171", "\151\156\163\164\141\156\143\145\157\146", "\52", "\53", "\55", "\77", "\57", 
+-"\144\151\166", "\45", "\155\157\144", null, null, null, null, null, null, null, null, null, };
++"\144\151\166", "\45", "\155\157\144", null, null, null, null, null, null, };
+ public static final String[] lexStateNames = {
+    "DEFAULT", 
+    "IN_EXPRESSION", 
+@@ -1258,17 +1177,17 @@
+ public static final int[] jjnewLexState = {
+    -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+-   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
++   -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+ };
+ static final long[] jjtoToken = {
+-   0x233ffffffffff60fL, 
++   0x47ffffffffff60fL, 
+ };
+ static final long[] jjtoSkip = {
+    0x1f0L, 
+ };
+ protected SimpleCharStream input_stream;
+-private final int[] jjrounds = new int[42];
+-private final int[] jjstateSet = new int[84];
++private final int[] jjrounds = new int[36];
++private final int[] jjstateSet = new int[72];
+ protected char curChar;
+ public ELParserTokenManager(SimpleCharStream stream){
+    if (SimpleCharStream.staticFlag)
+@@ -1290,7 +1209,7 @@
+ {
+    int i;
+    jjround = 0x80000001;
+-   for (i = 42; i-- > 0;)
++   for (i = 36; i-- > 0;)
+       jjrounds[i] = 0x80000000;
+ }
+ public void ReInit(SimpleCharStream stream, int lexState)
+@@ -1363,9 +1282,9 @@
+        jjmatchedKind = 0x7fffffff;
+        jjmatchedPos = 0;
+        curPos = jjMoveStringLiteralDfa0_1();
+-       if (jjmatchedPos == 0 && jjmatchedKind > 61)
++       if (jjmatchedPos == 0 && jjmatchedKind > 58)
+        {
+-          jjmatchedKind = 61;
++          jjmatchedKind = 58;
+        }
+        break;
+    }
+Index: java/org/apache/el/parser/ELParserConstants.java
+===================================================================
+--- java/org/apache/el/parser/ELParserConstants.java	(revision 3205)
++++ java/org/apache/el/parser/ELParserConstants.java	(working copy)
+@@ -68,14 +68,11 @@
+   int MOD0 = 51;
+   int MOD1 = 52;
+   int IDENTIFIER = 53;
+-  int NAMESPACE = 54;
+-  int NAMESPACE_NAME = 55;
+-  int FUNCTION_CALL = 56;
+-  int FUNCTIONSUFFIX = 57;
+-  int IMPL_OBJ_START = 58;
+-  int LETTER = 59;
+-  int DIGIT = 60;
+-  int ILLEGAL_CHARACTER = 61;
++  int FUNCTIONSUFFIX = 54;
++  int IMPL_OBJ_START = 55;
++  int LETTER = 56;
++  int DIGIT = 57;
++  int ILLEGAL_CHARACTER = 58;
+ 
+   int DEFAULT = 0;
+   int IN_EXPRESSION = 1;
+@@ -135,9 +132,6 @@
+     "\"%\"",
+     "\"mod\"",
+     "<IDENTIFIER>",
+-    "<NAMESPACE>",
+-    "<NAMESPACE_NAME>",
+-    "<FUNCTION_CALL>",
+     "<FUNCTIONSUFFIX>",
+     "\"#\"",
+     "<LETTER>",
+Index: java/org/apache/el/parser/ELParser.java
+===================================================================
+--- java/org/apache/el/parser/ELParser.java	(revision 3205)
++++ java/org/apache/el/parser/ELParser.java	(working copy)
+@@ -963,7 +963,6 @@
+     case NULL:
+     case LPAREN:
+     case IDENTIFIER:
+-    case FUNCTION_CALL:
+       Value();
+       break;
+     default:
+@@ -1033,7 +1032,6 @@
+       break;
+     case LPAREN:
+     case IDENTIFIER:
+-    case FUNCTION_CALL:
+       NonLiteral();
+       break;
+     default:
+@@ -1131,7 +1129,7 @@
+       break;
+     default:
+       jj_la1[28] = jj_gen;
+-      if (jj_2_1(3)) {
++      if (jj_2_1(2147483647)) {
+         Function();
+       } else {
+         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+@@ -1176,10 +1174,27 @@
+  /*@bgen(jjtree) Function */
+         AstFunction jjtn000 = new AstFunction(JJTFUNCTION);
+         boolean jjtc000 = true;
+-        jjtree.openNodeScope(jjtn000);Token tx = null;
++        jjtree.openNodeScope(jjtn000);Token t0 = null;
++        Token t1 = null;
+     try {
+-      tx = jj_consume_token(FUNCTION_CALL);
+       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
++      case IDENTIFIER:
++        t0 = jj_consume_token(IDENTIFIER);
++        jj_consume_token(COLON);
++        break;
++      default:
++        jj_la1[30] = jj_gen;
++        ;
++      }
++      t1 = jj_consume_token(IDENTIFIER);
++                if (t0 != null) {
++                        jjtn000.setPrefix(t0.image.substring(0, t0.image.length() - 1));
++                        jjtn000.setLocalName(t1.image);
++                } else {
++                        jjtn000.setLocalName(t1.image);
++                }
++      jj_consume_token(LPAREN);
++      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+       case INTEGER_LITERAL:
+       case FLOATING_POINT_LITERAL:
+       case STRING_LITERAL:
+@@ -1192,7 +1207,6 @@
+       case EMPTY:
+       case MINUS:
+       case IDENTIFIER:
+-      case FUNCTION_CALL:
+         Expression();
+         label_10:
+         while (true) {
+@@ -1201,7 +1215,7 @@
+             ;
+             break;
+           default:
+-            jj_la1[30] = jj_gen;
++            jj_la1[31] = jj_gen;
+             break label_10;
+           }
+           jj_consume_token(COMMA);
+@@ -1209,19 +1223,10 @@
+         }
+         break;
+       default:
+-        jj_la1[31] = jj_gen;
++        jj_la1[32] = jj_gen;
+         ;
+       }
+       jj_consume_token(RPAREN);
+-          jjtree.closeNodeScope(jjtn000, true);
+-          jjtc000 = false;
+-                int split = tx.image.indexOf(":");
+-                if (split!=-1) {
+-                        jjtn000.setPrefix(tx.image.substring(0, split));
+-                        jjtn000.setLocalName(tx.image.substring(split + 1, tx.image.length() - 1));
+-                } else {
+-                        jjtn000.setLocalName(tx.image.substring(0, tx.image.length() - 1));
+-                }
+     } catch (Throwable jjte000) {
+           if (jjtc000) {
+             jjtree.clearNodeScope(jjtn000);
+@@ -1266,7 +1271,7 @@
+       Null();
+       break;
+     default:
+-      jj_la1[32] = jj_gen;
++      jj_la1[33] = jj_gen;
+       jj_consume_token(-1);
+       throw new ParseException();
+     }
+@@ -1303,7 +1308,7 @@
+       }
+       break;
+     default:
+-      jj_la1[33] = jj_gen;
++      jj_la1[34] = jj_gen;
+       jj_consume_token(-1);
+       throw new ParseException();
+     }
+@@ -1398,500 +1403,20 @@
+   }
+ 
+   final private boolean jj_3R_11() {
+-    if (jj_scan_token(FUNCTION_CALL)) return true;
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_12()) jj_scanpos = xsp;
+-    if (jj_scan_token(RPAREN)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_28() {
+-    if (jj_3R_34()) return true;
+-    Token xsp;
+-    while (true) {
+-      xsp = jj_scanpos;
+-      if (jj_3R_35()) { jj_scanpos = xsp; break; }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_37() {
+-    if (jj_scan_token(MINUS)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_29() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_36()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_37()) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_36() {
+-    if (jj_scan_token(PLUS)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_69() {
+     if (jj_scan_token(IDENTIFIER)) return true;
++    if (jj_scan_token(COLON)) return true;
+     return false;
+   }
+ 
+-  final private boolean jj_3R_61() {
+-    if (jj_3R_69()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_24() {
+-    if (jj_3R_28()) return true;
+-    Token xsp;
+-    while (true) {
+-      xsp = jj_scanpos;
+-      if (jj_3R_29()) { jj_scanpos = xsp; break; }
+-    }
+-    return false;
+-  }
+-
+   final private boolean jj_3_1() {
+-    if (jj_3R_11()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_33() {
+     Token xsp;
+     xsp = jj_scanpos;
+-    if (jj_scan_token(29)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(30)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_60() {
++    if (jj_3R_11()) jj_scanpos = xsp;
++    if (jj_scan_token(IDENTIFIER)) return true;
+     if (jj_scan_token(LPAREN)) return true;
+-    if (jj_3R_13()) return true;
+     return false;
+   }
+ 
+-  final private boolean jj_3R_52() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_60()) {
+-    jj_scanpos = xsp;
+-    if (jj_3_1()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_61()) return true;
+-    }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_32() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(31)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(32)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_31() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(25)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(26)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_68() {
+-    if (jj_scan_token(NULL)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_25() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_30()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_31()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_32()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_33()) return true;
+-    }
+-    }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_30() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(27)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(28)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_63() {
+-    if (jj_scan_token(LBRACK)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_67() {
+-    if (jj_scan_token(STRING_LITERAL)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_54() {
+-    if (jj_3R_63()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_22() {
+-    if (jj_3R_24()) return true;
+-    Token xsp;
+-    while (true) {
+-      xsp = jj_scanpos;
+-      if (jj_3R_25()) { jj_scanpos = xsp; break; }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_27() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(35)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(36)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_62() {
+-    if (jj_scan_token(DOT)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_26() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(33)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(34)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_23() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_26()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_27()) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_66() {
+-    if (jj_scan_token(INTEGER_LITERAL)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_21() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(39)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(40)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_53() {
+-    if (jj_3R_62()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_50() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_53()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_54()) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_20() {
+-    if (jj_3R_22()) return true;
+-    Token xsp;
+-    while (true) {
+-      xsp = jj_scanpos;
+-      if (jj_3R_23()) { jj_scanpos = xsp; break; }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_47() {
+-    if (jj_3R_50()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_65() {
+-    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_49() {
+-    if (jj_3R_52()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_14() {
+-    if (jj_scan_token(COMMA)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_71() {
+-    if (jj_scan_token(FALSE)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_48() {
+-    if (jj_3R_51()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_46() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_48()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_49()) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_18() {
+-    if (jj_3R_20()) return true;
+-    Token xsp;
+-    while (true) {
+-      xsp = jj_scanpos;
+-      if (jj_3R_21()) { jj_scanpos = xsp; break; }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_19() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(41)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(42)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_70() {
+-    if (jj_scan_token(TRUE)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_64() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_70()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_71()) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_45() {
+-    if (jj_3R_46()) return true;
+-    Token xsp;
+-    while (true) {
+-      xsp = jj_scanpos;
+-      if (jj_3R_47()) { jj_scanpos = xsp; break; }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_16() {
+-    if (jj_3R_18()) return true;
+-    Token xsp;
+-    while (true) {
+-      xsp = jj_scanpos;
+-      if (jj_3R_19()) { jj_scanpos = xsp; break; }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_41() {
+-    if (jj_3R_45()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_59() {
+-    if (jj_3R_68()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_58() {
+-    if (jj_3R_67()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_17() {
+-    if (jj_scan_token(QUESTIONMARK)) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_40() {
+-    if (jj_scan_token(EMPTY)) return true;
+-    if (jj_3R_34()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_57() {
+-    if (jj_3R_66()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_12() {
+-    if (jj_3R_13()) return true;
+-    Token xsp;
+-    while (true) {
+-      xsp = jj_scanpos;
+-      if (jj_3R_14()) { jj_scanpos = xsp; break; }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_56() {
+-    if (jj_3R_65()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_39() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(37)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(38)) return true;
+-    }
+-    if (jj_3R_34()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_34() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_38()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_39()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_40()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_41()) return true;
+-    }
+-    }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_38() {
+-    if (jj_scan_token(MINUS)) return true;
+-    if (jj_3R_34()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_55() {
+-    if (jj_3R_64()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_51() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_55()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_56()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_57()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_58()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_59()) return true;
+-    }
+-    }
+-    }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_15() {
+-    if (jj_3R_16()) return true;
+-    Token xsp;
+-    while (true) {
+-      xsp = jj_scanpos;
+-      if (jj_3R_17()) { jj_scanpos = xsp; break; }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_44() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(51)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(52)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_13() {
+-    if (jj_3R_15()) return true;
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_43() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_scan_token(49)) {
+-    jj_scanpos = xsp;
+-    if (jj_scan_token(50)) return true;
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_35() {
+-    Token xsp;
+-    xsp = jj_scanpos;
+-    if (jj_3R_42()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_43()) {
+-    jj_scanpos = xsp;
+-    if (jj_3R_44()) return true;
+-    }
+-    }
+-    return false;
+-  }
+-
+-  final private boolean jj_3R_42() {
+-    if (jj_scan_token(MULT)) return true;
+-    return false;
+-  }
+-
+   public ELParserTokenManager token_source;
+   SimpleCharStream jj_input_stream;
+   public Token token, jj_nt;
+@@ -1901,7 +1426,7 @@
+   public boolean lookingAhead = false;
+   private boolean jj_semLA;
+   private int jj_gen;
+-  final private int[] jj_la1 = new int[34];
++  final private int[] jj_la1 = new int[35];
+   static private int[] jj_la1_0;
+   static private int[] jj_la1_1;
+   static {
+@@ -1909,10 +1434,10 @@
+       jj_la1_1();
+    }
+    private static void jj_la1_0() {
+-      jj_la1_0 = new int[] {0xe,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9d600,0x240000,0x9d600,0x240000,0x80000,0x0,0x1000000,0x9d600,0x1d600,0xc000,};
++      jj_la1_0 = new int[] {0xe,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9d600,0x240000,0x9d600,0x240000,0x80000,0x0,0x0,0x1000000,0x9d600,0x1d600,0xc000,};
+    }
+    private static void jj_la1_1() {
+-      jj_la1_1 = new int[] {0x0,0x0,0x10000,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x1208860,0x0,0x1200000,0x0,0x0,0x200000,0x0,0x1208860,0x0,0x0,};
++      jj_la1_1 = new int[] {0x0,0x0,0x10000,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x208860,0x0,0x200000,0x0,0x0,0x200000,0x200000,0x0,0x208860,0x0,0x0,};
+    }
+   final private JJCalls[] jj_2_rtns = new JJCalls[1];
+   private boolean jj_rescan = false;
+@@ -1927,7 +1452,7 @@
+     token = new Token();
+     jj_ntk = -1;
+     jj_gen = 0;
+-    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
++    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+   }
+ 
+@@ -1941,7 +1466,7 @@
+     jj_ntk = -1;
+     jjtree.reset();
+     jj_gen = 0;
+-    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
++    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+   }
+ 
+@@ -1951,7 +1476,7 @@
+     token = new Token();
+     jj_ntk = -1;
+     jj_gen = 0;
+-    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
++    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+   }
+ 
+@@ -1962,7 +1487,7 @@
+     jj_ntk = -1;
+     jjtree.reset();
+     jj_gen = 0;
+-    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
++    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+   }
+ 
+@@ -1971,7 +1496,7 @@
+     token = new Token();
+     jj_ntk = -1;
+     jj_gen = 0;
+-    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
++    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+   }
+ 
+@@ -1981,7 +1506,7 @@
+     jj_ntk = -1;
+     jjtree.reset();
+     jj_gen = 0;
+-    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
++    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+   }
+ 
+@@ -2092,15 +1617,15 @@
+ 
+   public ParseException generateParseException() {
+     jj_expentries.removeAllElements();
+-    boolean[] la1tokens = new boolean[62];
+-    for (int i = 0; i < 62; i++) {
++    boolean[] la1tokens = new boolean[59];
++    for (int i = 0; i < 59; i++) {
+       la1tokens[i] = false;
+     }
+     if (jj_kind >= 0) {
+       la1tokens[jj_kind] = true;
+       jj_kind = -1;
+     }
+-    for (int i = 0; i < 34; i++) {
++    for (int i = 0; i < 35; i++) {
+       if (jj_la1[i] == jj_gen) {
+         for (int j = 0; j < 32; j++) {
+           if ((jj_la1_0[i] & (1<<j)) != 0) {
+@@ -2112,7 +1637,7 @@
+         }
+       }
+     }
+-    for (int i = 0; i < 62; i++) {
++    for (int i = 0; i < 59; i++) {
+       if (la1tokens[i]) {
+         jj_expentry = new int[1];
+         jj_expentry[0] = i;
+Index: java/org/apache/el/parser/ELParser.jjt
+===================================================================
+--- java/org/apache/el/parser/ELParser.jjt	(revision 3205)
++++ java/org/apache/el/parser/ELParser.jjt	(working copy)
+@@ -31,7 +31,7 @@
+ 	NODE_DEFAULT_VOID=true;
+ 	JAVA_UNICODE_ESCAPE=false;
+   	UNICODE_INPUT=true;
+-	BUILD_NODE_FILES=false;
++	BUILD_NODE_FILES=true;
+ }
+ 
+ /* == Parser Declaration == */
+@@ -255,7 +255,7 @@
+ void NonLiteral() : {}
+ {
+  	<LPAREN> Expression() <RPAREN>
+- 	| LOOKAHEAD(3) Function()
++ 	| LOOKAHEAD((<IDENTIFIER> <COLON>)? <IDENTIFIER> <LPAREN>) Function()
+ 	| Identifier()
+ }
+ 
+@@ -274,19 +274,20 @@
+  */
+ void Function() #Function :
+ {
+-	Token tx = null;
++	Token t0 = null;
++	Token t1 = null;
+ }
+ {
+-	(tx=<FUNCTION_CALL>) (Expression() (<COMMA> Expression())*)? <RPAREN>
++	(t0=<IDENTIFIER> <COLON>)? t1=<IDENTIFIER>
+ 	{
+-		int split = tx.image.indexOf(":");
+-		if (split!=-1) {
+-			jjtThis.setPrefix(tx.image.substring(0, split));
+-			jjtThis.setLocalName(tx.image.substring(split + 1, tx.image.length() - 1));
++		if (t0 != null) {
++			jjtThis.setPrefix(t0.image.substring(0, t0.image.length() - 1));
++			jjtThis.setLocalName(t1.image);
+ 		} else {
+-			jjtThis.setLocalName(tx.image.substring(0, tx.image.length() - 1));
++			jjtThis.setLocalName(t1.image);
+ 		}
+ 	}
++	<LPAREN> (Expression() (<COMMA> Expression())*)? <RPAREN>
+ }
+ 
+ /*
+@@ -427,9 +428,6 @@
+ |	< MOD0 : "%" >
+ |	< MOD1 : "mod" >
+ |	< IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>) (<LETTER>|<DIGIT>)* >
+-|	< #NAMESPACE : ( <NAMESPACE_NAME> <COLON>) >
+-|	< #NAMESPACE_NAME: (<IDENTIFIER> (<LETTER>|<DIGIT>|<MINUS>|<DOT>)*) >
+-|	< FUNCTION_CALL: (<NAMESPACE>)? <IDENTIFIER> <LPAREN> >
+ |	< FUNCTIONSUFFIX : (<IDENTIFIER>) >
+ |	< #IMPL_OBJ_START: "#" >
+ |	< #LETTER:

Modified: geronimo/server/trunk/repository/org/apache/tomcat/catalina/6.0.18-G678601/catalina-6.0.18-G678601.jar
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/repository/org/apache/tomcat/catalina/6.0.18-G678601/catalina-6.0.18-G678601.jar?rev=686862&r1=686861&r2=686862&view=diff
==============================================================================
Binary files - no diff available.

Modified: geronimo/server/trunk/repository/org/apache/tomcat/catalina/6.0.18-G678601/catalina-6.0.18-G678601.jar.md5
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/repository/org/apache/tomcat/catalina/6.0.18-G678601/catalina-6.0.18-G678601.jar.md5?rev=686862&r1=686861&r2=686862&view=diff
==============================================================================
--- geronimo/server/trunk/repository/org/apache/tomcat/catalina/6.0.18-G678601/catalina-6.0.18-G678601.jar.md5 (original)
+++ geronimo/server/trunk/repository/org/apache/tomcat/catalina/6.0.18-G678601/catalina-6.0.18-G678601.jar.md5 Mon Aug 18 13:11:45 2008
@@ -1 +1 @@
-MD5 (catalina-6.0.18-G678601.jar) = 8fe924e8262e9dc50ff07ad0bdf5fe2e
+MD5 (catalina-6.0.18-G678601.jar) = 0d3ee7e44f82520cbc8cfd47b4b9aca1

Added: geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar?rev=686862&view=auto
==============================================================================
Binary file - no diff available.

Propchange: geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar.md5
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar.md5?rev=686862&view=auto
==============================================================================
--- geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar.md5 (added)
+++ geronimo/server/trunk/repository/org/apache/tomcat/jasper-el/6.0.18-G678601/jasper-el-6.0.18-G678601.jar.md5 Mon Aug 18 13:11:45 2008
@@ -0,0 +1 @@
+MD5 (jasper-el-6.0.18-G678601.jar) = a02102ce4221853d9aed0359e90ea47a

Modified: geronimo/server/trunk/repository/org/apache/tomcat/jasper/6.0.18-G678601/jasper-6.0.18-G678601.jar
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/repository/org/apache/tomcat/jasper/6.0.18-G678601/jasper-6.0.18-G678601.jar?rev=686862&r1=686861&r2=686862&view=diff
==============================================================================
Binary files - no diff available.

Modified: geronimo/server/trunk/repository/org/apache/tomcat/jasper/6.0.18-G678601/jasper-6.0.18-G678601.jar.md5
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/repository/org/apache/tomcat/jasper/6.0.18-G678601/jasper-6.0.18-G678601.jar.md5?rev=686862&r1=686861&r2=686862&view=diff
==============================================================================
--- geronimo/server/trunk/repository/org/apache/tomcat/jasper/6.0.18-G678601/jasper-6.0.18-G678601.jar.md5 (original)
+++ geronimo/server/trunk/repository/org/apache/tomcat/jasper/6.0.18-G678601/jasper-6.0.18-G678601.jar.md5 Mon Aug 18 13:11:45 2008
@@ -1 +1 @@
-MD5 (jasper-6.0.18-G678601.jar) = b32ba8e97cc83aecfc0db4ac6a168851
+MD5 (jasper-6.0.18-G678601.jar) = c7472ab345db36b99434c44e69e17494

Modified: geronimo/server/trunk/repository/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/repository/pom.xml?rev=686862&r1=686861&r2=686862&view=diff
==============================================================================
--- geronimo/server/trunk/repository/pom.xml (original)
+++ geronimo/server/trunk/repository/pom.xml Mon Aug 18 13:11:45 2008
@@ -72,6 +72,11 @@
             <groupId>org.apache.tomcat</groupId>
             <artifactId>jasper</artifactId>
         </dependency>
+        <!-- This is an additional patch until 6.0.19 is released -->
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>jasper-el</artifactId>
+        </dependency>
 
         <!-- add the following for wsgen -->
         <dependency>