In case of Maven Shade plugin was used for (re-)packaging resp. creating
an uber-Jar, add this transformer

 <transformers>
      <transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
 </transformers>


On 23.05.2018 17:36, Andy Seaborne wrote:
>
>
> 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 <a...@apache.org>
>> To: users@jena.apache.org
>> 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 <a...@apache.org>
>>  > To: users@jena.apache.org
>>  > 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 <a...@apache.org>
>>  >  > To: users@jena.apache.org
>>  >  > 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