Uploaded image for project: 'Apache Jena'
  1. Apache Jena
  2. JENA-1028

2.3.1-snapshot fails with OpDisjunction / org.apache.jena.atlas.lib.NotImplemented

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Jena 3.0.1
    • Fix Version/s: Jena 3.0.1
    • Component/s: ARQ
    • Labels:
      None
    • Environment:

      java version "1.8.0_60"
      Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
      Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode)

      fuseki-server.bat --update --port=3030 --memTDB --set tdb:unionDefaultG
      raph=true /db

      Description

      The following example query fails on the Fuseki - version 2.3.1-SNAPSHOT (Build date: 2015-09-13T20:21:55+0000) (but works on 1.1.3)

      PREFIX wiki: <http://example.org/id/>
      PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
      PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
      PREFIX owl: <http://www.w3.org/2002/07/owl#>
      PREFIX swivt: <http://semantic-mediawiki.org/swivt/1.0#>
      PREFIX property: <http://example.org/id/Property-3A>
      PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
      PREFIX category: <http://example.org/id/Category-3A>
      SELECT DISTINCT ?result WHERE {
      { ?result rdf:type category:Sample-2D1 . }
      {
      ?result property:Has_text-2D1 ?v1 .
      FILTER( ?v1 = "Value 1" || ?v1 = "Value 2" )
      } UNION {
      ?result property:Has_page-2D2 ?v2 .
      FILTER( ?v2 = wiki:Value_1 || ?v2 = wiki:Value_2 )
      }
      }
      OFFSET 0
      LIMIT 11
      

      with

      [2015-09-16 14:52:33] Fuseki     INFO  [11398] POST /db :: 'query' ::
      [application/x-www-form-urlen
      coded charset=utf-8] ?
      [2015-09-16 14:52:33] Fuseki     INFO  [11398] Query = PREFIX wiki:
      <http://example.org/id/> PREFIX
       rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs:
      <http://www.w3.org/2000/01/rdf-sch
      ema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX swivt:
      <http://semantic-mediawiki.org/swi
      vt/1.0#> PREFIX property: <http://example.org/id/Property-3A> PREFIX
      xsd: <http://www.w3.org/2001/X
      MLSchema#> PREFIX category: <http://example.org/id/Category-3A> SELECT
      DISTINCT ?result WHERE { { ?
      result rdf:type category:Sample-2D1 . } { ?result
      property:Has_text-2D1 ?v1 . FILTER( ?v1 = "Value
      1" || ?v1 = "Value 2" ) } UNION { ?result property:Has_page-2D2 ?v2 .
      FILTER( ?v2 = wiki:Value_1 ||
       ?v2 = wiki:Value_2 ) } } OFFSET 0 LIMIT 11
      [2015-09-16 14:52:33] Fuseki     WARN  [11398] RC = 500 : null
      org.apache.jena.atlas.lib.NotImplemented
              at org.apache.jena.sparql.engine.main.VarFinder$VarUsageVisitor.no(VarFinder.java:285)
              at org.apache.jena.sparql.engine.main.VarFinder$VarUsageVisitor.visit(VarFinder.java:305)
              at org.apache.jena.sparql.algebra.op.OpDisjunction.visit(OpDisjunction.java:76)
              at org.apache.jena.sparql.engine.main.VarFinder$VarUsageVisitor.apply(VarFinder.java:81)
              at org.apache.jena.sparql.engine.main.VarFinder$VarUsageVisitor.visit(VarFinder.java:206)
              at org.apache.jena.sparql.algebra.op.OpUnion.visit(OpUnion.java:49)
              at org.apache.jena.sparql.engine.main.VarFinder$VarUsageVisitor.apply(VarFinder.java:81)
              at org.apache.jena.sparql.engine.main.VarFinder.<init>(VarFinder.java:68)
              at org.apache.jena.sparql.engine.main.JoinClassifier.check(JoinClassifier.java:80)
              at org.apache.jena.sparql.engine.main.JoinClassifier.isLinear(JoinClassifier.java:59)
              at org.apache.jena.sparql.engine.main.JoinClassifier.isLinear(JoinClassifier.java:35)
              at org.apache.jena.sparql.algebra.optimize.TransformJoinStrategy.transform(TransformJoinStr
      ategy.java:39)
              at org.apache.jena.sparql.algebra.TransformWrapper.transform(TransformWrapper.java:71)
              at org.apache.jena.sparql.algebra.op.OpJoin.apply(OpJoin.java:75)
              at org.apache.jena.sparql.algebra.Transformer$ApplyTransformVisitor.visit2(Transformer.java
      :366)
              at org.apache.jena.sparql.algebra.OpVisitorByType.visit(OpVisitorByType.java:80)
              at org.apache.jena.sparql.algebra.op.OpJoin.visit(OpJoin.java:78)
              at org.apache.jena.sparql.algebra.OpWalker$WalkerVisitor.visit2(OpWalker.java:107)
              at org.apache.jena.sparql.algebra.OpVisitorByType.visit(OpVisitorByType.java:80)
              at org.apache.jena.sparql.algebra.op.OpJoin.visit(OpJoin.java:78)
              at org.apache.jena.sparql.algebra.OpWalker$WalkerVisitor.visit1(OpWalker.java:83)
              at org.apache.jena.sparql.algebra.OpVisitorByType.visitModifer(OpVisitorByType.java:44)
              at org.apache.jena.sparql.algebra.OpVisitorByType.visit(OpVisitorByType.java:160)
              at org.apache.jena.sparql.algebra.op.OpProject.visit(OpProject.java:47)
              at org.apache.jena.sparql.algebra.OpWalker$WalkerVisitor.visit1(OpWalker.java:83)
              at org.apache.jena.sparql.algebra.OpVisitorByType.visitModifer(OpVisitorByType.java:44)
              at org.apache.jena.sparql.algebra.OpVisitorByType.visit(OpVisitorByType.java:168)
              at org.apache.jena.sparql.algebra.op.OpDistinct.visit(OpDistinct.java:47)
              at org.apache.jena.sparql.algebra.OpWalker$WalkerVisitor.visit1(OpWalker.java:83)
              at org.apache.jena.sparql.algebra.OpVisitorByType.visitModifer(OpVisitorByType.java:44)
              at org.apache.jena.sparql.algebra.OpVisitorByType.visit(OpVisitorByType.java:172)
              at org.apache.jena.sparql.algebra.op.OpSlice.visit(OpSlice.java:50)
              at org.apache.jena.sparql.algebra.OpWalker.walk(OpWalker.java:43)
              at org.apache.jena.sparql.algebra.OpWalker.walk(OpWalker.java:38)
              at org.apache.jena.sparql.algebra.Transformer.applyTransformation(Transformer.java:147)
              at org.apache.jena.sparql.algebra.Transformer.transformation(Transformer.java:140)
              at org.apache.jena.sparql.algebra.Transformer.transformation(Transformer.java:129)
              at org.apache.jena.sparql.algebra.Transformer.transformation(Transformer.java:123)
              at org.apache.jena.sparql.algebra.Transformer.transform(Transformer.java:56)
              at org.apache.jena.sparql.algebra.Transformer.transformSkipService(Transformer.java:86)
              at org.apache.jena.sparql.algebra.Transformer.transformSkipService(Transformer.java:68)
              at org.apache.jena.sparql.algebra.optimize.Optimize.apply(Optimize.java:276)
              at org.apache.jena.sparql.algebra.optimize.Optimize.rewrite(Optimize.java:211)
              at org.apache.jena.sparql.algebra.optimize.Optimize.optimize(Optimize.java:77)
              at org.apache.jena.sparql.algebra.Algebra.optimize(Algebra.java:65)
              at org.apache.jena.sparql.engine.main.QueryEngineMain.modifyOp(QueryEngineMain.java:67)
              at org.apache.jena.tdb.solver.QueryEngineTDB.modifyOp(QueryEngineTDB.java:88)
              at org.apache.jena.sparql.engine.QueryEngineBase.createPlan(QueryEngineBase.java:101)
              at org.apache.jena.sparql.engine.QueryEngineBase.getPlan(QueryEngineBase.java:87)
              at org.apache.jena.tdb.solver.QueryEngineTDB$QueryEngineFactoryTDB.create(QueryEngineTDB.ja
      va:169)
              at org.apache.jena.sparql.engine.QueryExecutionBase.getPlan(QueryExecutionBase.java:578)
              at org.apache.jena.sparql.engine.QueryExecutionBase.startQueryIterator(QueryExecutionBase.j
      ava:533)
              at org.apache.jena.sparql.engine.QueryExecutionBase.execResultSet(QueryExecutionBase.java:5
      63)
              at org.apache.jena.sparql.engine.QueryExecutionBase.execSelect(QueryExecutionBase.java:183)
      
              at org.apache.jena.fuseki.servlets.SPARQL_Query.executeQuery(SPARQL_Query.java:298)
              at org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:254)
              at org.apache.jena.fuseki.servlets.SPARQL_Query.executeWithParameter(SPARQL_Query.java:212)
      
              at org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:108)
              at org.apache.jena.fuseki.servlets.ActionSPARQL.executeLifecycle(ActionSPARQL.java:132)
              at org.apache.jena.fuseki.servlets.SPARQL_UberServlet.executeRequest(SPARQL_UberServlet.jav
      a:334)
              at org.apache.jena.fuseki.servlets.SPARQL_UberServlet.serviceDispatch(SPARQL_UberServlet.ja
      va:298)
              at org.apache.jena.fuseki.servlets.SPARQL_UberServlet.executeAction(SPARQL_UberServlet.java
      :254)
              at org.apache.jena.fuseki.servlets.ActionSPARQL.execCommonWorker(ActionSPARQL.java:83)
              at org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:79)
              at org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:72)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
              at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
              at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
              at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
              at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125
      )
              at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
              at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:4
      49)
              at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
              at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
              at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
              at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
              at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.ja
      va:362)
              at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125
      )
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
              at org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285)
              at org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
              at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1156)
              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1088)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
              at org.eclipse.jetty.server.Server.handle(Server.java:517)
              at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306)
              at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
              at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:2
      45)
              at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
              at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
              at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduc
      eConsume.java:213)
              at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.j
      ava:147)
              at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
              at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
              at java.lang.Thread.run(Unknown Source)
      [2015-09-16 14:52:33] Fuseki     INFO  [11398] 500 Server Error (158 ms)
      

      Dataset for a possible replication has been sent via email.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                andy Andy Seaborne
                Reporter:
                mwjames mw james
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: