Skip to content

Commit c1a8749

Browse files
AntonKozlovRealCLanger
authored andcommitted
8284920: Incorrect Token type causes XPath expression to return empty result
Reviewed-by: andrew
1 parent e58378a commit c1a8749

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ else if ((Token.LPAREN != c) && (Token.RPAREN != c) && (Token.RBRACK != c)) {
360360

361361
addToTokenQueue(pat.substring(i, i + 1));
362362
break;
363-
case Token.COLON :
363+
case Token.COLON_CHAR:
364364
if (i>0)
365365
{
366366
if (posOfNSSep == (i - 1))
@@ -615,7 +615,7 @@ private void recordTokenString(List<String> targetStrings)
615615
resetTokenMark(tokPos + 1);
616616
}
617617

618-
if (m_processor.lookahead(Token.COLON, 1))
618+
if (m_processor.lookahead(Token.COLON_CHAR, 1))
619619
{
620620
tokPos += 2;
621621
}

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Token.java

Lines changed: 2 additions & 2 deletions
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";

src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathParser.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1413,7 +1413,7 @@ else if ((null != m_token) && ((('.' == m_tokenChar) && (m_token.length() > 1) &
14131413

14141414
matchFound = true;
14151415
}
1416-
else if (lookahead(Token.LPAREN, 1) || (lookahead(Token.COLON, 1) && lookahead(Token.LPAREN, 3)))
1416+
else if (lookahead(Token.LPAREN, 1) || (lookahead(Token.COLON_CHAR, 1) && lookahead(Token.LPAREN, 3)))
14171417
{
14181418
matchFound = FunctionCall();
14191419
}
@@ -1457,7 +1457,7 @@ protected boolean FunctionCall() throws TransformerException
14571457

14581458
int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
14591459

1460-
if (lookahead(Token.COLON, 1))
1460+
if (lookahead(Token.COLON_CHAR, 1))
14611461
{
14621462
appendOp(4, OpCodes.OP_EXTFUNCTION);
14631463

@@ -1841,7 +1841,7 @@ protected void NodeTest(int axesType) throws TransformerException
18411841
m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.NODENAME);
18421842
m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
18431843

1844-
if (lookahead(Token.COLON, 1))
1844+
if (lookahead(Token.COLON_CHAR, 1))
18451845
{
18461846
if (tokenIs(Token.STAR))
18471847
{
@@ -1944,7 +1944,7 @@ protected void PredicateExpr() throws TransformerException
19441944
protected void QName() throws TransformerException
19451945
{
19461946
// Namespace
1947-
if(lookahead(Token.COLON, 1))
1947+
if(lookahead(Token.COLON_CHAR, 1))
19481948
{
19491949
m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), m_queueMark - 1);
19501950
m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);

0 commit comments

Comments
 (0)