zongaro     2005/02/09 13:44:08

  Modified:    java/src/org/apache/xpath/compiler XPathParser.java
               java/src/org/apache/xpath/res XPATHErrorResources.java
  Log:
  Fix for Jira bug report XALANJ-1478.
  
  In the recursive descent parsing of an ill-formed XPath expression like "2+",
  when the parser reaches the end of the expression while still looking for an
  operand it ultimately ends up trying to see whether what remains can be parsed
  as a location path.  However, the LocationPath method was silently parsing the
  end of an expression as a location path!  Added an error for that situation.
  
  Reviewed by Brian Minchau (minchau () ca ! ibm ! com)
  
  Revision  Changes    Path
  1.32      +3 -1      
xml-xalan/java/src/org/apache/xpath/compiler/XPathParser.java
  
  Index: XPathParser.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/compiler/XPathParser.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- XPathParser.java  15 Dec 2004 17:35:55 -0000      1.31
  +++ XPathParser.java  9 Feb 2005 21:44:08 -0000       1.32
  @@ -1575,6 +1575,8 @@
         m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 1, 
OpCodes.NODETYPE_ROOT);
   
         nextToken();
  +    } else if (m_token == null) {
  +      error(XPATHErrorResources.ER_EXPECTED_LOC_PATH_AT_END_EXPR, null);
       }
   
       if (m_token != null)
  
  
  
  1.29      +21 -13    
xml-xalan/java/src/org/apache/xpath/res/XPATHErrorResources.java
  
  Index: XPATHErrorResources.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/res/XPATHErrorResources.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- XPATHErrorResources.java  23 Jan 2005 01:39:54 -0000      1.28
  +++ XPATHErrorResources.java  9 Feb 2005 21:44:08 -0000       1.29
  @@ -285,6 +285,8 @@
         "ER_EXPECTED_REL_LOC_PATH";
     /** Problem with LocationPath */
     public static final String ER_EXPECTED_LOC_PATH = "ER_EXPECTED_LOC_PATH";
  +  public static final String ER_EXPECTED_LOC_PATH_AT_END_EXPR =
  +                                        "ER_EXPECTED_LOC_PATH_AT_END_EXPR";
     /** Problem with Step */
     public static final String ER_EXPECTED_LOC_STEP = "ER_EXPECTED_LOC_STEP";
     /** Problem with NodeTest */
  @@ -350,18 +352,18 @@
         "WG_ILLEGAL_VARIABLE_REFERENCE";
     public static final String WG_UNSUPPORTED_ENCODING 
="WG_UNSUPPORTED_ENCODING";
   
  -/**  detach() not supported by XRTreeFragSelectWrapper   */
  -public static final String ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
  -     "ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
  -/**  num() not supported by XRTreeFragSelectWrapper   */
  -public static final String ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
  -     "ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
  -/**  xstr() not supported by XRTreeFragSelectWrapper   */
  -public static final String ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
  -     "ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
  -/**  str() not supported by XRTreeFragSelectWrapper   */
  -public static final String ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
  -     "ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
  +  /**  detach() not supported by XRTreeFragSelectWrapper   */
  +  public static final String ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER 
=
  +      "ER_DETACH_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
  +  /**  num() not supported by XRTreeFragSelectWrapper   */
  +  public static final String ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
  +      "ER_NUM_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
  +  /**  xstr() not supported by XRTreeFragSelectWrapper   */
  +  public static final String ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
  +      "ER_XSTR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
  +  /**  str() not supported by XRTreeFragSelectWrapper   */
  +  public static final String ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER =
  +      "ER_STR_NOT_SUPPORTED_XRTREEFRAGSELECTWRAPPER";
   
     // Error messages...
   
  @@ -981,6 +983,12 @@
     { ER_EXPECTED_LOC_PATH,
          "A location path was expected, but the following token was 
encountered\u003a  {0}"},
   
  +  // Note to translators:  A location path is a form of XPath expression.
  +  // The message indicates that syntactically such a subexpression was 
expected,
  +  // but no more characters were found in the expression.
  +  { ER_EXPECTED_LOC_PATH_AT_END_EXPR,
  +       "A location path was expected, but the end of the XPath expression 
was found instead."},
  +
     // Note to translators:  A location step is part of an XPath expression.
     // The message indicates that syntactically such an expression was expected
     // following the specified characters.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to