mirror of
https://github.com/openjdk/jdk7u.git
synced 2025-12-10 20:36:33 -06:00
8284920: Incorrect Token type causes XPath expression to return empty result
Reviewed-by: bae, yan Backport-of: 0d3aea2f11df585b491ae5c07de9f66679601d58
This commit is contained in:
parent
e4d4fcf030
commit
130121242a
@ -359,7 +359,7 @@ class Lexer
|
||||
|
||||
addToTokenQueue(pat.substring(i, i + 1));
|
||||
break;
|
||||
case Token.COLON :
|
||||
case Token.COLON_CHAR:
|
||||
if (i>0)
|
||||
{
|
||||
if (posOfNSSep == (i - 1))
|
||||
@ -614,7 +614,7 @@ class Lexer
|
||||
resetTokenMark(tokPos + 1);
|
||||
}
|
||||
|
||||
if (m_processor.lookahead(Token.COLON, 1))
|
||||
if (m_processor.lookahead(Token.COLON_CHAR, 1))
|
||||
{
|
||||
tokPos += 2;
|
||||
}
|
||||
|
||||
@ -45,10 +45,9 @@ public final class Token {
|
||||
static final char LPAREN = '(';
|
||||
static final char RPAREN = ')';
|
||||
static final char COMMA = ',';
|
||||
static final char DOT = '.';
|
||||
static final char AT = '@';
|
||||
static final char US = '_';
|
||||
static final char COLON = ':';
|
||||
static final char COLON_CHAR = ':';
|
||||
static final char SQ = '\'';
|
||||
static final char DQ = '"';
|
||||
static final char DOLLAR = '$';
|
||||
@ -58,6 +57,7 @@ public final class Token {
|
||||
static final String DIV = "div";
|
||||
static final String MOD = "mod";
|
||||
static final String QUO = "quo";
|
||||
static final String DOT = ".";
|
||||
static final String DDOT = "..";
|
||||
static final String DCOLON = "::";
|
||||
static final String ATTR = "attribute";
|
||||
|
||||
@ -1461,7 +1461,7 @@ public class XPathParser
|
||||
|
||||
matchFound = true;
|
||||
}
|
||||
else if (lookahead(Token.LPAREN, 1) || (lookahead(Token.COLON, 1) && lookahead(Token.LPAREN, 3)))
|
||||
else if (lookahead(Token.LPAREN, 1) || (lookahead(Token.COLON_CHAR, 1) && lookahead(Token.LPAREN, 3)))
|
||||
{
|
||||
matchFound = FunctionCall();
|
||||
}
|
||||
@ -1505,7 +1505,7 @@ public class XPathParser
|
||||
|
||||
int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
|
||||
|
||||
if (lookahead(Token.COLON, 1))
|
||||
if (lookahead(Token.COLON_CHAR, 1))
|
||||
{
|
||||
appendOp(4, OpCodes.OP_EXTFUNCTION);
|
||||
|
||||
@ -1889,7 +1889,7 @@ public class XPathParser
|
||||
m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.NODENAME);
|
||||
m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
|
||||
|
||||
if (lookahead(Token.COLON, 1))
|
||||
if (lookahead(Token.COLON_CHAR, 1))
|
||||
{
|
||||
if (tokenIs(Token.STAR))
|
||||
{
|
||||
@ -1992,7 +1992,7 @@ public class XPathParser
|
||||
protected void QName() throws TransformerException
|
||||
{
|
||||
// Namespace
|
||||
if(lookahead(Token.COLON, 1))
|
||||
if(lookahead(Token.COLON_CHAR, 1))
|
||||
{
|
||||
m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), m_queueMark - 1);
|
||||
m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user