Hi,

Due to traveling it took a while to test this, but it works!

I'll look into our build procedures.

Met Vriendelijke Groet / With Kind Regards
Bart van Leeuwen


twitter: @semanticfire
tel. +31(0)6-53182997
Netage B.V.
http://netage.nl
Esdoornstraat 3
3461ER Linschoten
The Netherlands




From:   Andy Seaborne <[email protected]>
To:     [email protected]
Date:   23-05-2018 17:37
Subject:        Re: Update Query Parsing error





On 23/05/18 16:19, Bart van Leeuwen wrote:
> code:
> 
> with apache-jena-libs in pom

Finding only one init is a symptom repacked jars that have not the right 
ServiceLoader files.

It looks like classpath has a repacked set of jena jars on it or a jar 
with jena inside it, as well as those from apache-jena-libs.  The 
repacking did not merge the ServiceLoader files.

If it not a case of unjar, copy into one place and rejar.

http://jena.apache.org/documentation/notes/jena-repack.html

What to look for:

in any jars

META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle

it should have multiple lines in it if it has multiple Jena jars 
combined in it (example from the Fuseki server jar):

org.apache.jena.tdb.sys.InitTDB
org.apache.jena.riot.system.InitRIOT
org.apache.jena.sparql.system.InitARQ
org.apache.jena.sys.InitJenaCore
org.apache.jena.tdb2.sys.InitTDB2
org.apache.jena.query.text.InitJenaText
org.apache.jena.query.spatial.InitJenaSpatial

     Andy

> 
> ##############
> public static void main(String... args) {
>          JenaSystem.DEBUG_INIT = true;
>          String update = "INSERT DATA {}";
>          UpdateFactory.create(update);
>          System.out.println("DONE");
>      }
> ###############
> 
> This is what I get
> 
> ##############
> JenaSystem.init - start
> Found:
>    InitTDB        [40]
> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
> SLF4J: Defaulting to no-operation (NOP) logger implementation
> SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinderfor further 

> details.
> Initialization sequence:
>    JenaInitLevel0   [0]
>    InitTDB        [40]
> Init: JenaInitLevel0
> Init: InitTDB
> TDB.init - start
> Exception in thread "main" java.lang.ExceptionInInitializerError
>          at 
> org.apache.jena.rdf.model.impl.ResourceImpl.fresh(ResourceImpl.java:135)
>          at 
> org.apache.jena.rdf.model.impl.ResourceImpl.<init>(ResourceImpl.java:85)
>          at 
> 
org.apache.jena.rdf.model.ResourceFactory$Impl.createResource(ResourceFactory.java:297)
 

> 
>          at 
> 
org.apache.jena.rdf.model.ResourceFactory.createResource(ResourceFactory.java:92)
 

> 
>          at org.apache.jena.vocabulary.RDFS.resource(RDFS.java:35)
>          at org.apache.jena.vocabulary.RDFS$Init.Class(RDFS.java:68)
>          at org.apache.jena.vocabulary.RDFS.<clinit>(RDFS.java:40)
>          at 
> org.apache.jena.shared.PrefixMapping.<clinit>(PrefixMapping.java:219)
>          at 
org.apache.jena.sparql.core.Prologue.<init>(Prologue.java:38)
>          at 
> org.apache.jena.update.UpdateRequest.<init>(UpdateRequest.java:46)
>          at 
> org.apache.jena.update.UpdateFactory.create(UpdateFactory.java:77)
>          at 
> org.apache.jena.update.UpdateFactory.create(UpdateFactory.java:56)
>          at 
> org.apache.jena.update.UpdateFactory.create(UpdateFactory.java:46)
>          at com.example.netage.App.main(App.java:19)
> 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:252)
>          at org.apache.jena.tdb.sys.InitTDB.start(InitTDB.java:29)
>          at 
> org.apache.jena.system.JenaSystem.lambda$init$2(JenaSystem.java:119)
>          at java.util.ArrayList.forEach(ArrayList.java:1257)
>          at 
org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:194)
>          at 
org.apache.jena.system.JenaSystem.forEach(JenaSystem.java:171)
>          at org.apache.jena.system.JenaSystem.init(JenaSystem.java:117)
>          at 
org.apache.jena.graph.NodeFactory.<clinit>(NodeFactory.java:32)
>          ... 14 more
> 
> #####################3
> 
> Met Vriendelijke Groet / With Kind Regards
> Bart van Leeuwen
> 
> 
> twitter: @semanticfire
> tel. +31(0)6-53182997
> Netage B.V.
> http://netage.nl <http://netage.nl/>
> Esdoornstraat 3
> 3461ER Linschoten
> The Netherlands
> 
> 
> 
> 
> From: Andy Seaborne <[email protected]>
> To: [email protected]
> Date: 23-05-2018 17:05
> Subject: Re: Update Query Parsing error
> ------------------------------------------------------------------------
> 
> 
> 
> 
> 
> On 23/05/18 12:40, Bart van Leeuwen wrote:
>  > I mean this:
>  >
>  > #####
>  >
>  > public static void main(String[] args) throws Exception {
>  >        JenaSystem.DEBUG_INIT = true;
>  >          JenaSystem.init();
>  >          ARQ.getContext().isTrue(ARQ.constantBNodeLabels) ;
>  >
>  > ####
>  >
>  > which crashes at the ARQ line.
> 
> And no output? DEBUG_INIT causes init() to print all details of startup.
> The first thing the code does is print "JenaSystem.init - start" even
> before it's got to looking for components to initialize.
> 
> See my other code experiment which is Jena-only code - no 3rd party 
code.
> 
> Can you share the POM?
> 
>      Andy
> 
>  >
>  >
>  > Met Vriendelijke Groet / With Kind Regards
>  > Bart van Leeuwen
>  >
>  >
>  > twitter: @semanticfire
>  > tel. +31(0)6-53182997
>  > Netage B.V.
>  > http://netage.nl <http://netage.nl/><http://netage.nl/>
>  > Esdoornstraat 3
>  > 3461ER Linschoten
>  > The Netherlands
>  >
>  >
>  >
>  >
>  > From: Andy Seaborne <[email protected]>
>  > To: [email protected]
>  > Date: 23-05-2018 13:39
>  > Subject: Re: Update Query Parsing error
>  > 
------------------------------------------------------------------------
>  >
>  >
>  >
>  >
>  >
>  > On 23/05/18 12:15, Bart van Leeuwen wrote:
>  >  > I just tried your little addition and indeed it crashes before the
>  > update.
>  >  > So what's next ?
>  >
>  > To be clear here - you mean this:
>  >
>  >   public static void main(String[] args) throws Exception {
>  >          JenaSystem.DEBUG_INIT = true;
>  >          JenaSystem.init();
>  >          ARQ.getContext().isTrue(ARQ.constantBNodeLabels) ;
>  >
>  > not the complete "main" below.
>  >
>  > What got printed by DEBUG_INIT?
>  >
>  >      Andy
>  >
>  >  >
>  >  > Met Vriendelijke Groet / With Kind Regards
>  >  > Bart van Leeuwen
>  >  >
>  >  >
>  >  > twitter: @semanticfire
>  >  > tel. +31(0)6-53182997
>  >  > Netage B.V.
>  >  > http://netage.nl 
> <http://netage.nl/><http://netage.nl/><http://netage.nl/>
>  >  > Esdoornstraat 3
>  >  > 3461ER Linschoten
>  >  > The Netherlands
>  >  >
>  >  >
>  >  >
>  >  >
>  >  > From: Andy Seaborne <[email protected]>
>  >  > To: [email protected]
>  >  > Date: 23-05-2018 13:11
>  >  > Subject: Re: Update Query Parsing error
>  >  > 
> ------------------------------------------------------------------------
>  >  >
>  >  >
>  >  >
>  >  > This code has the same Jena sequence without the StarDog code:
>  >  >
>  >  > The stacktrace indicates an exception before parsing even starts 
> so the
>  >  > update itself is not a factro.
>  >  >
>  >  >      public static void main(String... args) {
>  >  >          JenaSystem.DEBUG_INIT = true;
>  >  >          String update = "INSERT DATA {}";
>  >  >          UpdateFactory.create(update);
>  >  >          System.out.println("DONE");
>  >  >      }
>  >  >
>  >  > This works for me with a maven dependency on
>  >  > org.apache.jena:apache-jena-libs:pom:3.7.0
>  >  >
>  >  >      Andy
>  >  >
>  >  >
>  >
>  >
> 
> 


Reply via email to