Description
The UserManager method createUser(String userID, String password) throws an exception (javax.jcr.query.InvalidQueryException) if the user name contains a '@' character.
Stack trace:
Exception in thread "main" javax.jcr.query.InvalidQueryException: Lexical error at line 1, column 76. Encountered: "@" (64), after : "" for statement: for $v in /jcr:root/rep:security/rep:authorizables/rep:groups//element(test@example.com,rep:Group) return $v: Lexical error at line 1, column 76. Encountered: "@" (64), after : "": Lexical error at line 1, column 76. Encountered: "@" (64), after : ""
at org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.<init>(XPathQueryBuilder.java:302)
at org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.createQuery(XPathQueryBuilder.java:331)
at org.apache.jackrabbit.spi.commons.query.xpath.QueryBuilder.createQueryTree(QueryBuilder.java:39)
at org.apache.jackrabbit.spi.commons.query.QueryParser.parse(QueryParser.java:57)
at org.apache.jackrabbit.core.query.lucene.QueryImpl.<init>(QueryImpl.java:91)
at org.apache.jackrabbit.core.query.lucene.SearchIndex.createExecutableQuery(SearchIndex.java:615)
at org.apache.jackrabbit.core.query.QueryImpl.init(QueryImpl.java:128)
at org.apache.jackrabbit.core.SearchManager.createQuery(SearchManager.java:282)
at org.apache.jackrabbit.core.query.QueryManagerImpl.createQuery(QueryManagerImpl.java:102)
at org.apache.jackrabbit.core.security.user.IndexNodeResolver.buildQuery(IndexNodeResolver.java:105)
at org.apache.jackrabbit.core.security.user.IndexNodeResolver.findNode(IndexNodeResolver.java:50)
at org.apache.jackrabbit.core.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:93)
at org.apache.jackrabbit.core.security.user.UserManagerImpl.createUser(UserManagerImpl.java:177)
at org.apache.jackrabbit.core.security.user.UserManagerImpl.createUser(UserManagerImpl.java:158)
at FirstHop.main(FirstHop.java:20)
Caused by: org.apache.jackrabbit.spi.commons.query.xpath.TokenMgrError: Lexical error at line 1, column 76. Encountered: "@" (64), after : ""
at org.apache.jackrabbit.spi.commons.query.xpath.XPathTokenManager.getNextToken(XPathTokenManager.java:13263)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.jj_ntk(XPath.java:9187)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ElementTest(XPath.java:8745)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.KindTest(XPath.java:8120)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.NodeTest(XPath.java:5041)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.AbbrevForwardStep(XPath.java:4891)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ForwardStep(XPath.java:4747)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.AxisStep(XPath.java:4692)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.StepExpr(XPath.java:4597)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.RelativePathExpr(XPath.java:4547)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.PathExpr(XPath.java:4396)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ValueExpr(XPath.java:4125)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.UnaryExpr(XPath.java:4032)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.CastExpr(XPath.java:3935)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.CastableExpr(XPath.java:3898)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.TreatExpr(XPath.java:3861)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.InstanceofExpr(XPath.java:3824)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.IntersectExceptExpr(XPath.java:3748)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.UnionExpr(XPath.java:3672)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.MultiplicativeExpr(XPath.java:3586)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.AdditiveExpr(XPath.java:3510)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.RangeExpr(XPath.java:3451)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ComparisonExpr(XPath.java:3353)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.AndExpr(XPath.java:3290)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.OrExpr(XPath.java:3227)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ExprSingle(XPath.java:2214)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ForClause(XPath.java:2337)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.FLWORExpr(XPath.java:2233)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ExprSingle(XPath.java:2133)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.Expr(XPath.java:2094)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.QueryBody(XPath.java:2066)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.MainModule(XPath.java:512)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.Module(XPath.java:387)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.QueryList(XPath.java:151)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.XPath2(XPath.java:118)
at org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.<init>(XPathQueryBuilder.java:295)
... 14 more
org.apache.jackrabbit.spi.commons.query.xpath.TokenMgrError: Lexical error at line 1, column 76. Encountered: "@" (64), after : ""
at org.apache.jackrabbit.spi.commons.query.xpath.XPathTokenManager.getNextToken(XPathTokenManager.java:13263)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.jj_ntk(XPath.java:9187)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ElementTest(XPath.java:8745)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.KindTest(XPath.java:8120)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.NodeTest(XPath.java:5041)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.AbbrevForwardStep(XPath.java:4891)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ForwardStep(XPath.java:4747)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.AxisStep(XPath.java:4692)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.StepExpr(XPath.java:4597)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.RelativePathExpr(XPath.java:4547)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.PathExpr(XPath.java:4396)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ValueExpr(XPath.java:4125)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.UnaryExpr(XPath.java:4032)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.CastExpr(XPath.java:3935)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.CastableExpr(XPath.java:3898)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.TreatExpr(XPath.java:3861)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.InstanceofExpr(XPath.java:3824)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.IntersectExceptExpr(XPath.java:3748)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.UnionExpr(XPath.java:3672)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.MultiplicativeExpr(XPath.java:3586)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.AdditiveExpr(XPath.java:3510)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.RangeExpr(XPath.java:3451)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ComparisonExpr(XPath.java:3353)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.AndExpr(XPath.java:3290)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.OrExpr(XPath.java:3227)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ExprSingle(XPath.java:2214)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ForClause(XPath.java:2337)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.FLWORExpr(XPath.java:2233)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.ExprSingle(XPath.java:2133)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.Expr(XPath.java:2094)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.QueryBody(XPath.java:2066)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.MainModule(XPath.java:512)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.Module(XPath.java:387)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.QueryList(XPath.java:151)
at org.apache.jackrabbit.spi.commons.query.xpath.XPath.XPath2(XPath.java:118)
at org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.<init>(XPathQueryBuilder.java:295)
at org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.createQuery(XPathQueryBuilder.java:331)
at org.apache.jackrabbit.spi.commons.query.xpath.QueryBuilder.createQueryTree(QueryBuilder.java:39)
at org.apache.jackrabbit.spi.commons.query.QueryParser.parse(QueryParser.java:57)
at org.apache.jackrabbit.core.query.lucene.QueryImpl.<init>(QueryImpl.java:91)
at org.apache.jackrabbit.core.query.lucene.SearchIndex.createExecutableQuery(SearchIndex.java:615)
at org.apache.jackrabbit.core.query.QueryImpl.init(QueryImpl.java:128)
at org.apache.jackrabbit.core.SearchManager.createQuery(SearchManager.java:282)
at org.apache.jackrabbit.core.query.QueryManagerImpl.createQuery(QueryManagerImpl.java:102)
at org.apache.jackrabbit.core.security.user.IndexNodeResolver.buildQuery(IndexNodeResolver.java:105)
at org.apache.jackrabbit.core.security.user.IndexNodeResolver.findNode(IndexNodeResolver.java:50)
at org.apache.jackrabbit.core.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:93)
at org.apache.jackrabbit.core.security.user.UserManagerImpl.createUser(UserManagerImpl.java:177)
at org.apache.jackrabbit.core.security.user.UserManagerImpl.createUser(UserManagerImpl.java:158)
at FirstHop.main(FirstHop.java:20)