This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit 8654c07f23a892c03a7367981d814c3c8b094f62
Author: Andy Seaborne <[email protected]>
AuthorDate: Sat Aug 31 22:55:28 2024 +0100

    GH-2675: Call JenaSystem.init in RDFLinkHTTPBuilder
---
 jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java          | 5 ++++-
 .../src/main/java/org/apache/jena/rdflink/RDFLinkHTTPBuilder.java    | 4 ++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java 
b/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java
index 6852cb6e30..09871f83b9 100644
--- a/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java
@@ -77,17 +77,20 @@ public class JenaSystem {
     }
 
     public static void init() {
+        // Once jena is initialized, all calls are an immediate return.
         if ( initialized )
             return ;
+        // Overlapping attempts to perform initialization will block on the 
synchronized.
         synchronized(JenaSystem.class) {
             if ( initialized )
                 return ;
-            initialized = true;
             setup();
             if ( DEBUG_INIT )
                 singleton.debug(DEBUG_INIT);
             singleton.initialize();
             singleton.debug(false);
+            // Last so overlapping initialization waits on the synchronized
+            initialized = true;
         }
     }
 
diff --git 
a/jena-rdfconnection/src/main/java/org/apache/jena/rdflink/RDFLinkHTTPBuilder.java
 
b/jena-rdfconnection/src/main/java/org/apache/jena/rdflink/RDFLinkHTTPBuilder.java
index a11ad05795..8db4740a58 100644
--- 
a/jena-rdfconnection/src/main/java/org/apache/jena/rdflink/RDFLinkHTTPBuilder.java
+++ 
b/jena-rdfconnection/src/main/java/org/apache/jena/rdflink/RDFLinkHTTPBuilder.java
@@ -30,9 +30,13 @@ import org.apache.jena.sparql.core.Transactional;
 import org.apache.jena.sparql.core.TransactionalLock;
 import org.apache.jena.sparql.exec.http.QuerySendMode;
 import org.apache.jena.sparql.exec.http.UpdateSendMode;
+import org.apache.jena.sys.JenaSystem;
 
 /** Builder class for {@link RDFLinkHTTP} */
 public class RDFLinkHTTPBuilder {
+
+    static { JenaSystem.init(); }
+
     /*package*/ static String SameAsDestination  = "";
 
     protected Transactional txnLifecycle  = TransactionalLock.createMRPlusSW();

Reply via email to