QueryResultParseException

Running a fresh install of Stardog 6.0.0, I get this exception for every query I run through the API (both Java and Clojure, shown here from my Java test program):

com.complexible.stardog.StardogException: File does not contain a binary RDF table result
	at com.complexible.stardog.protocols.client.SPECClientUtil.toStardogException(SPECClientUtil.java:86)
	at com.complexible.stardog.protocols.client.SPECClientUtil.toStardogException(SPECClientUtil.java:34)
	at com.complexible.stardog.api.impl.SPECSelectQuery.execute(SPECSelectQuery.java:52)
	at com.complexible.stardog.api.impl.SPECSelectQuery.execute(SPECSelectQuery.java:31)
	at org.lassila.sdexample.Test.main(Test.java:50)
Caused by: com.complexible.common.protocols.client.ClientException: File does not contain a binary RDF table result
	at com.complexible.stardog.protocols.http.client.HttpClientImpl.select(HttpClientImpl.java:339)
	at com.complexible.stardog.protocols.http.client.HttpClientImpl.select(HttpClientImpl.java:93)
	at com.complexible.stardog.api.impl.SPECSelectQuery.execute(SPECSelectQuery.java:45)
	... 2 more
Caused by: org.openrdf.query.resultio.QueryResultParseException: File does not contain a binary RDF table result
	at com.complexible.common.rdf.query.resultio.NonNullBinaryQueryResultParser.parse(NonNullBinaryQueryResultParser.java:106)
	at org.openrdf.query.resultio.AbstractTupleQueryResultParser.parseQueryResult(AbstractTupleQueryResultParser.java:61)
	at com.complexible.common.rdf.query.IOBindingSetIterator$ParseService.run(IOBindingSetIterator.java:184)
	at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)
	at com.google.common.util.concurrent.Callables$3.run(Callables.java:95)
	at java.lang.Thread.run(Thread.java:748)

Debugging this, it looks like query results coming back are malformed/corrupted. Anyone seen this?

This stacktrace appears to show a 5.x Stardog client communicating with a 6.x server. Can you verify the version numbers in your java/clojure dependencies (and that they're pointing to maven.stardog.com)?

Good catch! I had started with a Gradle file I copied from some documentation, then modified:

plugins {
    id 'java'
    id 'application'
}

group 'org.lassila'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    maven { url "http://maven.stardog.com" }
    mavenLocal()
    mavenCentral()
}

dependencies {
    compile ('com.complexible.stardog:client-http:4.2.4')
}

mainClassName = "org.lassila.sdexample.Test"

What's the correct dependency?

The version simply needs to match your Stardog version; we publish new artifacts with every release:

compile ('com.complexible.stardog:client-http:6.0.0@pom')

The @pom may not be strictly necessary, but not having it for the server or client dependencies has caused problems in the past.

I have been playing with the new dependency, with and without the "@pom", but I seem to be missing some things. Minimally, build fails with this artifact missing: com.stardog.stark:stardog-stark-model:6.0.0

Hello again,

I have updated our public maven repository, and it should have all the necessary artifacts from Stark now. Please let me know if that continues not to be the case.

Much better... for some reason, I am still missing (i.e., the compiler cannot find) com.stardog.stark.query.SelectQueryResult in my little sample program. Possibly others, too.

Maybe I am missing some dependency in my gradle file.

Also, for Clojure, this dependency does not resolve:

[stardog-clj "6.0.0"]

...and furthermore, lein complains about a non-TLS URL for the Stardog maven repo.

Apologies again. There were still some pom issues in our repository. I think everything should be alright now.

As for stardog-clj, as an open-source library (as opposed to one of our Stardog artifacts), its most current version is 5.0.0-RC1. I can't guarantee its compatibility with Stardog 6.0.0 at this point.

As for the non-TLS URL, do you have it set to "https://maven.stardog.com?" I don't seem to get this warning from lein.

Yep, "https" works fine. Your documentation, however, says "http".

So it does. Thanks for pointing that out; we'll make that update

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.