Uploaded image for project: 'Blazegraph (by SYSTAP)'
  1. Blazegraph (by SYSTAP)
  2. BLZG-1127

JVMNamedSubqueryOp throws ExecutionException with OPTIONAL and FILTER query

    Details

      Description

      The following query

      select * where {
      optional { <http://someURI> rdfs:label ?labelPrefered_l_ru. filter( langMatches(lang(?labelPrefered_l_ru),"ru") )}
      optional { <http://someURI> rdfs:label ?labelPrefered_l_en. filter( langMatches(lang(?labelPrefered_l_en),"en") )}
      }

      results in the following exception:

      ERROR: SPARQL-QUERY: queryStr=
      select * where {
      optional { rdfs:label ?labelPrefered_l_ru. filter( langMatches(lang(?labelPrefered_l_ru),"ru") )}
      optional { rdfs:label ?labelPrefered_l_en. filter( langMatches(lang(?labelPrefered_l_en),"en") )}
      }
      java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Required property: com.bigdata.bop.controller.SubqueryAnnotations.subquery : class com.bigdata.bop.controller.JVMNamedSubqueryOp
      at java.util.concurrent.FutureTask.report(FutureTask.java:122)
      at java.util.concurrent.FutureTask.get(FutureTask.java:188)
      at com.bigdata.rdf.sail.webapp.QueryServlet.doSparqlQuery(QueryServlet.java:513)
      at com.bigdata.rdf.sail.webapp.QueryServlet.doPost(QueryServlet.java:191)
      at com.bigdata.rdf.sail.webapp.RESTServlet.doPost(RESTServlet.java:237)
      at com.bigdata.rdf.sail.webapp.MultiTenancyServlet.doPost(MultiTenancyServlet.java:144)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Required property: com.bigdata.bop.controller.SubqueryAnnotations.subquery : class com.bigdata.bop.controller.JVMNamedSubqueryOp
      at java.util.concurrent.FutureTask.report(FutureTask.java:122)
      at java.util.concurrent.FutureTask.get(FutureTask.java:188)
      at com.bigdata.rdf.sail.webapp.QueryServlet$SparqlQueryTask.call(QueryServlet.java:707)
      at com.bigdata.rdf.sail.webapp.QueryServlet$SparqlQueryTask.call(QueryServlet.java:531)
      at com.bigdata.rdf.task.ApiTaskForIndexManager.call(ApiTaskForIndexManager.java:67)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at com.bigdata.rdf.task.AbstractApiTask.submitApiTask(AbstractApiTask.java:315)
      at com.bigdata.rdf.sail.webapp.BigdataServlet.submitApiTask(BigdataServlet.java:220)
      ... 22 more
      Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Required property: com.bigdata.bop.controller.SubqueryAnnotations.subquery : class com.bigdata.bop.controller.JVMNamedSubqueryOp
      at java.util.concurrent.FutureTask.report(FutureTask.java:122)
      at java.util.concurrent.FutureTask.get(FutureTask.java:188)
      at com.bigdata.rdf.sail.webapp.BigdataRDFContext$AbstractQueryTask.call(BigdataRDFContext.java:1294)
      at com.bigdata.rdf.sail.webapp.BigdataRDFContext$AbstractQueryTask.call(BigdataRDFContext.java:504)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      ... 3 more
      Caused by: java.lang.IllegalStateException: Required property: com.bigdata.bop.controller.SubqueryAnnotations.subquery : class com.bigdata.bop.controller.JVMNamedSubqueryOp
      at com.bigdata.bop.CoreBaseBOp.getRequiredProperty(CoreBaseBOp.java:243)
      at com.bigdata.bop.controller.JVMNamedSubqueryOp.(JVMNamedSubqueryOp.java:122)
      at com.bigdata.bop.controller.JVMNamedSubqueryOp.(JVMNamedSubqueryOp.java:143)
      at com.bigdata.rdf.sparql.ast.eval.AST2BOpUtility.addNamedSubquery(AST2BOpUtility.java:856)
      at com.bigdata.rdf.sparql.ast.eval.AST2BOpUtility.addNamedSubqueries(AST2BOpUtility.java:797)
      at com.bigdata.rdf.sparql.ast.eval.AST2BOpUtility.convertQueryBaseWithScopedVars(AST2BOpUtility.java:383)
      at com.bigdata.rdf.sparql.ast.eval.AST2BOpUtility.convert(AST2BOpUtility.java:239)
      at com.bigdata.rdf.sparql.ast.eval.ASTEvalHelper.evaluateTupleQuery(ASTEvalHelper.java:244)
      at com.bigdata.rdf.sail.BigdataSailTupleQuery.evaluate(BigdataSailTupleQuery.java:93)
      at com.bigdata.rdf.sail.BigdataSailTupleQuery.evaluate(BigdataSailTupleQuery.java:75)
      at org.openrdf.repository.sail.SailTupleQuery.evaluate(SailTupleQuery.java:75)
      at com.bigdata.rdf.sail.webapp.BigdataRDFContext$TupleQueryTask.doQuery(BigdataRDFContext.java:1405)
      at com.bigdata.rdf.sail.webapp.BigdataRDFContext$AbstractQueryTask$SparqlRestApiTask.call(BigdataRDFContext.java:1238)
      at com.bigdata.rdf.sail.webapp.BigdataRDFContext$AbstractQueryTask$SparqlRestApiTask.call(BigdataRDFContext.java:1188)
      at com.bigdata.rdf.task.ApiTaskForIndexManager.call(ApiTaskForIndexManager.java:67)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at com.bigdata.rdf.task.AbstractApiTask.submitApiTask(AbstractApiTask.java:315)
      ... 6 more

        Activity

        Hide
        michaelschmidt michaelschmidt added a comment -

        Resolved issue in branch bugfix-complex-optional. The problem was that there the query body is empty except for the optionals, which conflicts with the optimization strategy. Added a pre-check + skipping optimization in case the query body is empty.

        Show
        michaelschmidt michaelschmidt added a comment - Resolved issue in branch bugfix-complex-optional. The problem was that there the query body is empty except for the optionals, which conflicts with the optimization strategy. Added a pre-check + skipping optimization in case the query body is empty.

          People

          • Assignee:
            michaelschmidt michaelschmidt
            Reporter:
            peterhaase peterhaase
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: