Skip to content

Commit d0b8929

Browse files
committedApr 16, 2022
8284920: Incorrect Token type causes XPath expression to return empty result
Reviewed-by: andrew
1 parent f1a7de1 commit d0b8929

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed
 

‎jaxp/src/com/sun/org/apache/xpath/internal/compiler/Lexer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ else if ((Token.LPAREN != c) && (Token.RPAREN != c) && (Token.RBRACK != c)) {
358358

359359
addToTokenQueue(pat.substring(i, i + 1));
360360
break;
361-
case Token.COLON :
361+
case Token.COLON_CHAR:
362362
if (i>0)
363363
{
364364
if (posOfNSSep == (i - 1))
@@ -613,7 +613,7 @@ private void recordTokenString(Vector targetStrings)
613613
resetTokenMark(tokPos + 1);
614614
}
615615

616-
if (m_processor.lookahead(Token.COLON, 1))
616+
if (m_processor.lookahead(Token.COLON_CHAR, 1))
617617
{
618618
tokPos += 2;
619619
}

‎jaxp/src/com/sun/org/apache/xpath/internal/compiler/Token.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,9 @@ public final class Token {
4545
static final char LPAREN = '(';
4646
static final char RPAREN = ')';
4747
static final char COMMA = ',';
48-
static final char DOT = '.';
4948
static final char AT = '@';
5049
static final char US = '_';
51-
static final char COLON = ':';
50+
static final char COLON_CHAR = ':';
5251
static final char SQ = '\'';
5352
static final char DQ = '"';
5453
static final char DOLLAR = '$';
@@ -58,6 +57,7 @@ public final class Token {
5857
static final String DIV = "div";
5958
static final String MOD = "mod";
6059
static final String QUO = "quo";
60+
static final String DOT = ".";
6161
static final String DDOT = "..";
6262
static final String DCOLON = "::";
6363
static final String ATTR = "attribute";

‎jaxp/src/com/sun/org/apache/xpath/internal/compiler/XPathParser.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -1461,7 +1461,7 @@ else if ((null != m_token) && ((('.' == m_tokenChar) && (m_token.length() > 1) &
14611461

14621462
matchFound = true;
14631463
}
1464-
else if (lookahead(Token.LPAREN, 1) || (lookahead(Token.COLON, 1) && lookahead(Token.LPAREN, 3)))
1464+
else if (lookahead(Token.LPAREN, 1) || (lookahead(Token.COLON_CHAR, 1) && lookahead(Token.LPAREN, 3)))
14651465
{
14661466
matchFound = FunctionCall();
14671467
}
@@ -1505,7 +1505,7 @@ protected boolean FunctionCall() throws TransformerException
15051505

15061506
int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
15071507

1508-
if (lookahead(Token.COLON, 1))
1508+
if (lookahead(Token.COLON_CHAR, 1))
15091509
{
15101510
appendOp(4, OpCodes.OP_EXTFUNCTION);
15111511

@@ -1889,7 +1889,7 @@ protected void NodeTest(int axesType) throws TransformerException
18891889
m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.NODENAME);
18901890
m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
18911891

1892-
if (lookahead(Token.COLON, 1))
1892+
if (lookahead(Token.COLON_CHAR, 1))
18931893
{
18941894
if (tokenIs(Token.STAR))
18951895
{
@@ -1992,7 +1992,7 @@ protected void PredicateExpr() throws TransformerException
19921992
protected void QName() throws TransformerException
19931993
{
19941994
// Namespace
1995-
if(lookahead(Token.COLON, 1))
1995+
if(lookahead(Token.COLON_CHAR, 1))
19961996
{
19971997
m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), m_queueMark - 1);
19981998
m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);

0 commit comments

Comments
 (0)