You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2015/04/20 09:22:58 UTC

[jira] [Updated] (OAK-2684) FullTextParser throws ParseException for valid expression

     [ https://issues.apache.org/jira/browse/OAK-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Dürig updated OAK-2684:
-------------------------------
    Component/s:     (was: oak-core)
                 core

> FullTextParser throws ParseException for valid expression
> ---------------------------------------------------------
>
>                 Key: OAK-2684
>                 URL: https://issues.apache.org/jira/browse/OAK-2684
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.1.7
>            Reporter: Roland Schaer
>
> The FullTextParser throws a ParseException when the GQL expression [1] is passed to {{GQL.execute()}} which translates it to XPath expression [2]
> [1] {{"jcr:content/cq:template":"/apps/geometrixx-outdoors/templates/page_sidebar"  path:"/content/geometrixx-outdoors" limit:0..20 type:"cq:Page" order:"-jcr:content/cq:lastModified"}}
> [2] {{/jcr:root/content//*[(@jcr:primaryType='cq:Page' and jcr:contains(jcr:content/@cq:template, '/apps/geometrixx-outdoors/templates/page_sidebar'))] order by jcr:content/@cq:lastModified descending}}
> The FullTextParser implementation seems correct, not sure if the usage of GQL within OAK is fully supported. Can someone shed some light what might going wrong here?
> {code}
> 25.03.2015 17:47:10.433 *ERROR* [0:0:0:0:0:0:0:1 [1427316430425] GET /bin/wcm/contentfinder/page/view.html/content/geometrixx-outdoors HTTP/1.1] com.day.cq.tagging.impl.JcrTagManagerImpl Error while searching for content tagged with title '"jcr:content/cq:template":"/apps/geometrixx-outdoors/templates/page_sidebar"  order:"-jcr:content/cq:lastModified"'
> javax.jcr.query.InvalidQueryException: java.lang.IllegalArgumentException: Invalid expression: '"jcr:content/cq:template":"/apps/geometrixx-outdoors/templates/page_sidebar"  order:"-jcr:content/cq:lastModified"'
> 	at org.apache.jackrabbit.oak.jcr.query.QueryManagerImpl.executeQuery(QueryManagerImpl.java:142)
> 	at org.apache.jackrabbit.oak.jcr.query.QueryImpl$2.perform(QueryImpl.java:101)
> 	at org.apache.jackrabbit.oak.jcr.query.QueryImpl$2.perform(QueryImpl.java:98)
> 	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:216)
> 	at org.apache.jackrabbit.oak.jcr.query.QueryImpl.execute(QueryImpl.java:97)
> 	at com.day.cq.tagging.impl.JcrTagManagerImpl.findTagsByTitle(JcrTagManagerImpl.java:550)
> 	at com.day.cq.tagging.impl.JcrTagManagerImpl.findTagsByTitle(JcrTagManagerImpl.java:518)
> 	at com.day.cq.wcm.core.contentfinder.ViewHandler.getTagTitleGQLSearchExpression(ViewHandler.java:212)
> 	at com.day.cq.wcm.core.impl.servlets.contentfinder.PageViewHandler.createQuery(PageViewHandler.java:99)
> 	at com.day.cq.wcm.core.contentfinder.ViewHandler.executeSearch(ViewHandler.java:115)
> 	at com.day.cq.wcm.core.contentfinder.ViewHandler.doGet(ViewHandler.java:77)
> 	at com.day.cq.commons.servlets.AbstractPredicateServlet.doGet(AbstractPredicateServlet.java:68)
> 	at org.apache.sling.api.servlets.SlingSafeMethodsServlet.mayService(SlingSafeMethodsServlet.java:269)
> 	at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:140)
> 	at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:345)
> 	at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:376)
> 	at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:533)
> 	at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:73)
> 	at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:96)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:146)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:371)
> 	at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:171)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282)
> 	at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:73)
> 	at com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl.doFilter(ResourceResolverHelperImpl.java:81)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.dam.core.impl.servlet.ActivityRecordHandler.doFilter(ActivityRecordHandler.java:155)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.adobe.cq.dam.s7imaging.impl.auth.MemoryTokenAuthHandler.doFilter(MemoryTokenAuthHandler.java:156)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:147)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:129)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl.doFilter(AuthoringUIModeServiceImpl.java:364)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at org.apache.sling.rewriter.impl.RewriterFilter.doFilter(RewriterFilter.java:83)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.wcm.core.impl.warp.TimeWarpFilter.doFilter(TimeWarpFilter.java:106)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter.doFilter(RedirectFilter.java:243)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.adobe.cq.social.commons.cors.CORSAuthenticationFilter.doFilter(CORSAuthenticationFilter.java:91)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.analytics.provisioning.impl.UserAuthenticationRequestFilter.doFilter(UserAuthenticationRequestFilter.java:110)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:95)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet.doFilter(FormsHandlingServlet.java:251)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.theme.impl.ThemeResolverFilter.doFilter(ThemeResolverFilter.java:76)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.adobe.granite.optout.impl.OptOutFilter.doFilter(OptOutFilter.java:74)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.wcm.core.impl.WCMRequestFilter.doFilter(WCMRequestFilter.java:90)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.adobe.cq.history.impl.HistoryRequestFilter.doFilter(HistoryRequestFilter.java:107)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.day.cq.wcm.designimporter.CanvasPageDeleteRequestFilter.doFilter(CanvasPageDeleteRequestFilter.java:88)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:77)
> 	at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:56)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter.doFilter(BackgroundServletStarterFilter.java:135)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet.doFilter(SaferSlingPostServlet.java:120)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at com.adobe.granite.requests.logging.impl.RequestLoggerImpl.doFilter(RequestLoggerImpl.java:137)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.doProcessRequest(SlingRequestProcessorImpl.java:151)
> 	at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:217)
> 	at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:336)
> 	at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:297)
> 	at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:93)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:50)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> 	at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:129)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> 	at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:308)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> 	at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:290)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> 	at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:89)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> 	at org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:115)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> 	at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
> 	at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:76)
> 	at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:49)
> 	at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:497)
> 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> 	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalArgumentException: Invalid expression: '"jcr:content/cq:template":"/apps/geometrixx-outdoors/templates/page_sidebar"  order:"-jcr:content/cq:lastModified"'
> 	at org.apache.jackrabbit.oak.query.ast.FullTextSearchImpl.getFullTextConstraint(FullTextSearchImpl.java:146)
> 	at org.apache.jackrabbit.oak.query.ast.AndImpl.getFullTextConstraint(AndImpl.java:99)
> 	at org.apache.jackrabbit.oak.query.ast.SelectorImpl.createFilter(SelectorImpl.java:389)
> 	at org.apache.jackrabbit.oak.query.ast.SelectorImpl.prepare(SelectorImpl.java:283)
> 	at org.apache.jackrabbit.oak.query.QueryImpl.prepare(QueryImpl.java:568)
> 	at org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:183)
> 	at org.apache.jackrabbit.oak.jcr.query.QueryManagerImpl.executeQuery(QueryManagerImpl.java:132)
> 	... 131 common frames omitted
> Caused by: java.text.ParseException: FullText expression: "jcr:content/cq:template"(*):"/apps/geometrixx-outdoors/templates/page_sidebar"  order:"-jcr:content/cq:lastModified"; expected: space
> 	at org.apache.jackrabbit.oak.query.fulltext.FullTextParser.getSyntaxError(FullTextParser.java:198)
> 	at org.apache.jackrabbit.oak.query.fulltext.FullTextParser.parseTerm(FullTextParser.java:115)
> 	at org.apache.jackrabbit.oak.query.fulltext.FullTextParser.parseAnd(FullTextParser.java:70)
> 	at org.apache.jackrabbit.oak.query.fulltext.FullTextParser.parseOr(FullTextParser.java:55)
> 	at org.apache.jackrabbit.oak.query.fulltext.FullTextParser.parse(FullTextParser.java:49)
> 	at org.apache.jackrabbit.oak.query.ast.FullTextSearchImpl.getFullTextConstraint(FullTextSearchImpl.java:143)
> 	... 137 common frames omitted
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)