In a particular test (ElasticsearchFunctionSailSPARQLTest) I created sail hierarchies:
MemeoryStore -> LuceneSail -> SpinSail -> SailRepository
I have an error message; org.eclipse.rdf4j.sail.lucene.LuceneSailConnection cannot be cast to org.eclipse.rdf4j.sail.inferencer.InferencerConnection
My question is: can I wrap LuceneSailConnection to make it InferencerConnection ?
I really need both (LuceneSail and SpinSail engines) because of Mark Hale's class org.eclipse.rdf4j.sail.lucene.QueryTupleFunction which will replace old Lucene search approach.
full stacktrace is:
java.lang.ClassCastException: org.eclipse.rdf4j.sail.lucene.LuceneSailConnection cannot be cast to org.eclipse.rdf4j.sail.inferencer.InferencerConnection
at org.eclipse.rdf4j.sail.spin.SpinSail.getConnection(SpinSail.java:142)
at org.eclipse.rdf4j.sail.spin.SpinSail.initialize(SpinSail.java:155)
at org.eclipse.rdf4j.repository.sail.SailRepository.initializeInternal(SailRepository.java:151)
at org.eclipse.rdf4j.repository.base.AbstractRepository.initialize(AbstractRepository.java:31)
at org.eclipse.rdf4j.sail.lucene.AbstractFunctionLuceneSailSPARQLTest.setUp(AbstractFunctionLuceneSailSPARQLTest.java:85)
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:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)