cancel
Showing results for 
Search instead for 
Did you mean: 

Failed to execute Xpath with xpathSearch

riogrande
Champ in-the-making
Champ in-the-making
Hi all,

I have made a very simple script :


var results = search.xpathSearch("//*[@af:status='In']");

logger.log("\n## Document with the status set to 'In' : \n")

for each (result in results){
   logger.log("# : " + result.properties["cm:title"] + "\n");
}

But I have this error :
12:07:01,625 ERROR [org.alfresco.web.ui.common.Utils] Failed to run Actions due to error: Failed to execute script 'workspace://SpacesStore/db92b6ec-901b-472f-8ac9-52c1552cedda': Failed to execute search: //*[@af:status='In']
org.alfresco.scripts.ScriptException: Failed to execute script 'workspace://SpacesStore/db92b6ec-901b-472f-8ac9-52c1552cedda': Failed to execute search: //*[@af:status='In']
   at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:156)
   at org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:176)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
   at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:40)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:49)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.alfresco.repo.audit.AuditComponentImpl.auditImpl(AuditComponentImpl.java:301)
   at org.alfresco.repo.audit.AuditComponentImpl.audit(AuditComponentImpl.java:229)
   at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:69)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
   at $Proxy181.executeScript(Unknown Source)
   at org.alfresco.repo.action.executer.ScriptActionExecuter.executeImpl(ScriptActionExecuter.java:157)
   at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:127)
   at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:592)
   at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:529)
   at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:391)
   at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:379)
   at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:600)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
   at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:40)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:49)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.alfresco.repo.audit.AuditComponentImpl.auditImpl(AuditComponentImpl.java:301)
   at org.alfresco.repo.audit.AuditComponentImpl.audit(AuditComponentImpl.java:229)
   at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:69)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
   at $Proxy22.executeAction(Unknown Source)
   at org.alfresco.web.bean.actions.RunActionWizard.finishImpl(RunActionWizard.java:101)
   at org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:121)
   at org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:118)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:320)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:227)
   at org.alfresco.web.bean.dialog.BaseDialogBean.finish(BaseDialogBean.java:127)
   at org.alfresco.web.bean.wizard.WizardManager.finish(WizardManager.java:580)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
   at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
   at javax.faces.component.UICommand.broadcast(UICommand.java:109)
   at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
   at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
   at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
   at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
   at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
   at java.lang.Thread.run(Thread.java:619)
Caused by: org.alfresco.error.AlfrescoRuntimeException: Failed to execute search: //*[@af:status='In']
   at org.alfresco.repo.jscript.Search.query(Search.java:451)
   at org.alfresco.repo.jscript.Search.xpathSearch(Search.java:209)
   at org.alfresco.repo.jscript.Search.xpathSearch(Search.java:194)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:155)
   at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:243)
   at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
   at org.mozilla.javascript.gen.c1._c0(AlfrescoScript:2)
   at org.mozilla.javascript.gen.c1.call(AlfrescoScript)
   at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
   at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
   at org.mozilla.javascript.gen.c1.call(AlfrescoScript)
   at org.mozilla.javascript.gen.c1.exec(AlfrescoScript)
   at org.mozilla.javascript.Context.evaluateString(Context.java:1196)
   at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:390)
   at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:152)
   … 81 more
Caused by: java.lang.UnsupportedOperationException
   at org.alfresco.repo.search.impl.lucene.LuceneXPathHandler.startPredicate(LuceneXPathHandler.java:455)
   at com.werken.saxpath.XPathReader.predicate(XPathReader.java:770)
   at com.werken.saxpath.XPathReader.predicates(XPathReader.java:759)
   at com.werken.saxpath.XPathReader.nameTest(XPathReader.java:725)
   at com.werken.saxpath.XPathReader.nodeTest(XPathReader.java:612)
   at com.werken.saxpath.XPathReader.step(XPathReader.java:553)
   at com.werken.saxpath.XPathReader.steps(XPathReader.java:454)
   at com.werken.saxpath.XPathReader.absoluteLocationPath(XPathReader.java:405)
   at com.werken.saxpath.XPathReader.locationPath(XPathReader.java:335)
   at com.werken.saxpath.XPathReader.pathExpr(XPathReader.java:177)
   at com.werken.saxpath.XPathReader.unionExpr(XPathReader.java:1001)
   at com.werken.saxpath.XPathReader.unaryExpr(XPathReader.java:989)
   at com.werken.saxpath.XPathReader.multiplicativeExpr(XPathReader.java:940)
   at com.werken.saxpath.XPathReader.additiveExpr(XPathReader.java:911)
   at com.werken.saxpath.XPathReader.relationalExpr(XPathReader.java:868)
   at com.werken.saxpath.XPathReader.equalityExpr(XPathReader.java:839)
   at com.werken.saxpath.XPathReader.andExpr(XPathReader.java:817)
   at com.werken.saxpath.XPathReader.orExpr(XPathReader.java:795)
   at com.werken.saxpath.XPathReader.expr(XPathReader.java:788)
   at com.werken.saxpath.XPathReader.parse(XPathReader.java:105)
   at org.alfresco.repo.search.impl.lucene.ADMLuceneSearcherImpl.query(ADMLuceneSearcherImpl.java:422)
   at org.alfresco.repo.search.impl.lucene.ADMLuceneSearcherImpl.query(ADMLuceneSearcherImpl.java:206)
   at org.alfresco.repo.search.SearcherComponent.query(SearcherComponent.java:68)
   at org.alfresco.repo.search.AbstractSearcherComponent.query(AbstractSearcherComponent.java:59)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
   at net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:80)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:49)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.alfresco.repo.audit.AuditComponentImpl.auditImpl(AuditComponentImpl.java:301)
   at org.alfresco.repo.audit.AuditComponentImpl.audit(AuditComponentImpl.java:229)
   at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:69)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
   at $Proxy20.query(Unknown Source)
   at org.alfresco.repo.jscript.Search.query(Search.java:434)
   … 99 more
I tried //.[@af:status='In'] or .//.[@af:status='In'], event with standard property like cm:title it doesn't work.
When I use the "Alfresco Node Browser" this query works with the "selectnode" option but not with the "xpath" option I have the following error :
Search failed due to: java.lang.UnsupportedOperationException

The big question is : Is Xpath working in Alfresco  :?
12 REPLIES 12

riogrande
Champ in-the-making
Champ in-the-making
Ok I not immediately understand but I get it :

var result = search.luceneSearch("workspace://SpacesStore", "PARENT:\"workspace://SpacesStore/50755bba-4ba1-4b9e-88e9-3a64985474e1\" AND TYPE:\"cm:folder\" AND @cm\\:name:\"Marketing\"");

But it doesn’t work for the children folders as mentioned. I have just the result of the parent space. So for example if I have :

Archive
    Marketing
      Department 1
      Department 2
And I set de following query :
var result = search.luceneSearch("workspace://SpacesStore", "PARENT:\"workspace://SpacesStore/50755bba-4ba1-4b9e-88e9-3a64985474e1\" AND TYPE:\"cm:folder\" AND @cm\\:name:\"Department 1\"");

Result => none Smiley Tongue
So how to make it works ?

mikeh
Star Contributor
Star Contributor
"Department 1"'s parent isn't the archive space, so it's not part of the resultset.

Sounds like you need a PATH query instead if you want descendants as well as child nodes.

Something like:
PATH:"/app:company_home/cm:Archive//*" +TYPE:"cm:folder"

Note the "//*" which will search deeper than the immediate children.

Thanks,
Mike

riogrande
Champ in-the-making
Champ in-the-making
I tried it in the node browser, works fine thanks!  Smiley Happy