Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-21405

Escape & and ' characters in MarkLogic queries

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 8.10, 9.1
    • Fix Version/s: 8.10-HF01, 9.1
    • Component/s: Core MarkLogic

      Description

      We need to escape & and ' characters when building queries for MarkLogic.

      Issue highlighted by TestFSExporterAccents.shouldExportFileTest:88 ยป Nuxeo An exception happened du...

      org.nuxeo.ecm.core.api.NuxeoException: An exception happened during xcc call
      	at org.nuxeo.ecm.core.storage.marklogic.MarkLogicRepository.exist(MarkLogicRepository.java:611)
      	at org.nuxeo.ecm.core.storage.marklogic.MarkLogicRepository.hasChild(MarkLogicRepository.java:266)
      	at org.nuxeo.ecm.core.storage.dbs.DBSTransactionState.hasChild(DBSTransactionState.java:244)
      	at org.nuxeo.ecm.core.storage.dbs.DBSSession.hasChild(DBSSession.java:429)
      	at org.nuxeo.ecm.core.storage.dbs.DBSDocument.hasChild(DBSDocument.java:331)
      	at org.nuxeo.ecm.core.api.AbstractSession.fillCreateOptions(AbstractSession.java:729)
      	at org.nuxeo.ecm.core.api.AbstractSession.createDocument(AbstractSession.java:674)
      	at org.nuxeo.io.fsexporter.test.TestFSExporterAccents.shouldExportFileTest(TestFSExporterAccents.java:88)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$15.evaluate(FeaturesRunner.java:467)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$BeforeMethodRunStatement.evaluate(FeaturesRunner.java:346)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$BeforeSetupStatement.evaluate(FeaturesRunner.java:362)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$AfterMethodRunStatement.evaluate(FeaturesRunner.java:393)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$AfterTeardownStatement.evaluate(FeaturesRunner.java:412)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$RulesFactory$1.evaluate(FeaturesRunner.java:525)
      	at org.nuxeo.runtime.test.runner.RuntimeDeployment$DeploymentStatement.evaluate(RuntimeDeployment.java:270)
      	at org.nuxeo.runtime.test.runner.RuntimeFeature$2$1.evaluate(RuntimeFeature.java:124)
      	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
      	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$AfterClassStatement.evaluate(FeaturesRunner.java:285)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$RulesFactory$1.evaluate(FeaturesRunner.java:525)
      	at org.nuxeo.runtime.test.runner.FeaturesRunner$BeforeClassStatement.evaluate(FeaturesRunner.java:268)
      	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
      	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
      	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
      	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
      Caused by: com.marklogic.xcc.exceptions.XQueryException: XDMP-ENTITYREF: (err:XPST0003) Invalid entity reference ""
       [Session: user=admin, cb=unittests [ContentSource: user=admin, cb=unittests [provider: address=localhost/127.0.0.1:8010, pool=1/64]]]
       [Client: XCC/8.0-5, Server: XDBC/8.0-6]
      on line 1
      expr:  
      	at com.marklogic.xcc.impl.handlers.ServerExceptionHandler.handleResponse(ServerExceptionHandler.java:34)
      	at com.marklogic.xcc.impl.handlers.EvalRequestController.serverDialog(EvalRequestController.java:96)
      	at com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest(AbstractRequestController.java:88)
      	at com.marklogic.xcc.impl.SessionImpl.submitRequestInternal(SessionImpl.java:437)
      	at com.marklogic.xcc.impl.SessionImpl.submitRequest(SessionImpl.java:432)
      	at org.nuxeo.ecm.core.storage.marklogic.MarkLogicRepository.exist(MarkLogicRepository.java:608)
      	... 46 more
      

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: