Message selector can't contain Unicode multibyte characters
-----------------------------------------------------------
Key: JBMESSAGING-1770
URL:
https://jira.jboss.org/jira/browse/JBMESSAGING-1770
Project: JBoss Messaging
Issue Type: Bug
Components: Messaging Core
Affects Versions: 1.4.6.GA, 1.4.0.SP3.CP09
Reporter: Toshiya Kobayashi
When I use multibyte characters in my message selector, JBoss Messaging throws Exception
below.
21:18:59,501 ERROR [ExceptionUtil] SessionEndpoint[5a-6eof7d2g-1-ubw27d2g-wvszil-100j3]
createConsumerDelegate [7a-tkof7d2g-1-ubw27d2g-wvszil-100j3]
org.jboss.jms.server.selector.TokenMgrError: Lexical error at line 1, column 10.
Encountered: "\u516c" (20844), after : "\'"
at
org.jboss.jms.server.selector.SelectorParserTokenManager.getNextToken(SelectorParserTokenManager.java:1139)
at org.jboss.jms.server.selector.SelectorParser.jj_scan_token(SelectorParser.java:1353)
at org.jboss.jms.server.selector.SelectorParser.jj_3R_7(SelectorParser.java:1026)
at org.jboss.jms.server.selector.SelectorParser.jj_3R_29(SelectorParser.java:1021)
at org.jboss.jms.server.selector.SelectorParser.jj_3R_10(SelectorParser.java:1033)
at org.jboss.jms.server.selector.SelectorParser.jj_3_5(SelectorParser.java:976)
at org.jboss.jms.server.selector.SelectorParser.jj_2_5(SelectorParser.java:726)
at
org.jboss.jms.server.selector.SelectorParser.comparisonExpression(SelectorParser.java:271)
at
org.jboss.jms.server.selector.SelectorParser.conditionalExpression(SelectorParser.java:202)
at org.jboss.jms.server.selector.SelectorParser.selectorFactor(SelectorParser.java:167)
at org.jboss.jms.server.selector.SelectorParser.selectorTerm(SelectorParser.java:136)
at
org.jboss.jms.server.selector.SelectorParser.selectorExpression(SelectorParser.java:114)
at org.jboss.jms.server.selector.SelectorParser.expression(SelectorParser.java:105)
at org.jboss.jms.server.selector.SelectorParser.parse(SelectorParser.java:58)
at org.jboss.jms.server.selector.SelectorParser.parse(SelectorParser.java:38)
at org.jboss.jms.server.selector.Selector.<init>(Selector.java:101)
at
org.jboss.jms.server.endpoint.ServerSessionEndpoint.createConsumerDelegateInternal(ServerSessionEndpoint.java:1913)
According to JMS 1.1 specification:
=======
3.8.1.1 Message Selector Syntax
...
A selector can contain:
• Literals:
- A string literal is enclosed in single quotes, with an included single quote
represented by doubled single quote; for example, 'literal' and
'literal''s'.
Like Java String literals, these use the Unicode character encoding.
=======
Message Selector should be able to contain Unicode characters.
It can be achieved by adding option "UNICODE_INPUT=ture" to
org.jboss.jms.server.selector.SelectorParser.jj
options {
LOOKAHEAD=1;
UNICODE_INPUT=true;
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira