Hi Julien,

The NPE is happening during system initialization. It looks like TDB init running before ARQ init.

Jena now uses ServiceLoader for initialization. Each jena jar has a META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle file which are combined to form the initializationprocess.

My guess is that the combined jar has one services/JenaSubsystemLifecycle file at random, in this case TDB's.

Combining jars needs to cope with the services files.

We do have a combined jar for Fuseki - the process it uses is to shade (maven-shade-plugin) the jars together with a specific step to combine services via ServicesResourceTransformer. See [*] for details.

If you look in your executable jar, look for the services directory and check the files there to see if that agrees with the guess above.

    Andy

[*]
https://github.com/apache/jena/blob/master/jena-fuseki2/jena-fuseki-server/pom.xml#L62



On 05/02/16 08:49, Julien Plu wrote:
Hello,

I have an issue to load RDF files only with the new Jena 3.0.1. With this
simple code:

import org.apache.jena.riot.RDFDataMgr;
import org.apache.jena.rdf.model.Model;
public class Test {
   public static void main(String[] args) {
     Model model = RDFDataMgr.loadModel("test.nt");
   }
}

Where "test.nt" contains one simple triple:

<http://dbpedia.org/resource/Barack_Obama> <
http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <
http://dbpedia.org/ontology/Person> .

If I compile this code with Maven to build an executable jar and run it
with the command line:

java -jar target/test.jar

I get the following exception:

log4j:WARN No appenders could be found for logger (Jena).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for
more info.

Exception in thread "main" java.lang.ExceptionInInitializerError

at

Test.main(Test.java:5)

Caused by: java.lang.NullPointerException

at
org.apache.jena.tdb.sys.EnvTDB.processGlobalSystemProperties(EnvTDB.java:33)

at org.apache.jena.tdb.TDB.init(TDB.java:250)

at org.apache.jena.tdb.sys.InitTDB.start(InitTDB.java:29)

at org.apache.jena.system.JenaSystem.lambda$init$40(JenaSystem.java:114)

at java.util.ArrayList.forEach(ArrayList.java:1249)

at org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:179)

at org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:156)

at org.apache.jena.system.JenaSystem.init(JenaSystem.java:111)

at org.apache.jena.riot.RDFDataMgr.<clinit>(RDFDataMgr.java:81)

... 2 more
Any idea of what is going wrong?

Thanks in advance.

--
Julien Plu

PhD Student at Eurecom.
Personal webpage: http://jplu.developpez.com
FOAF file : http://jplu.developpez.com/julien
Email address : [email protected] && *[email protected]
<[email protected]>*
Phone : +33493008103
Twitter : @julienplu


Reply via email to