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 6162653593e92261b32ae556ebf7245370b3db4a
Author: Andy Seaborne <[email protected]>
AuthorDate: Wed Jul 30 10:40:49 2025 +0100

    Fix handling FUSEKI_BASE for during restart testing
---
 .../src/main/java/org/apache/jena/atlas/lib/Lib.java    |  9 +++++++++
 .../org/apache/jena/fuseki/mgt/FusekiServerCtl.java     |  4 ++--
 .../apache/jena/fuseki/server/TestFusekiServerCmd.java  | 17 ++++++-----------
 3 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java 
b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
index ac8a079dfb..e31eee664d 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java
@@ -181,6 +181,15 @@ public class Lib
         System.getProperties().setProperty(sysPropName, value);
     }
 
+    /**
+     * Remove the system property.
+     * The process environment variables are immutable.).
+     * {@link #getenv(String)} looks in the system properties as well as the 
process environment variables.
+     */
+    public static void unsetenv(String sysPropName) {
+        System.getProperties().remove(sysPropName);
+    }
+
     /** Test whether a property (environment variable or system property) is 
true. */
     public static boolean isPropertyOrEnvVarSetToTrue(String name) {
         return isPropertyOrEnvVarSetToTrue(name, name);
diff --git 
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mgt/FusekiServerCtl.java
 
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mgt/FusekiServerCtl.java
index 9cc1a4fd43..a573ae384e 100644
--- 
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mgt/FusekiServerCtl.java
+++ 
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mgt/FusekiServerCtl.java
@@ -384,8 +384,8 @@ public class FusekiServerCtl {
 
     /** Running a full-features server sets some global state. Clear this up. 
(mainly for tests.)*/
     public static void clearUpSystemState() {
-        System.getProperties().remove(FusekiServerCtl.envFusekiShiro);
-        System.getProperties().remove(FusekiServerCtl.envFusekiBase);
+        Lib.unsetenv(FusekiServerCtl.envFusekiShiro);
+        Lib.unsetenv(FusekiServerCtl.envFusekiBase);
         FusekiMain.resetCustomisers();
     }
 
diff --git 
a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/server/TestFusekiServerCmd.java
 
b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/server/TestFusekiServerCmd.java
index 52dd4f6c61..46b555af24 100644
--- 
a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/server/TestFusekiServerCmd.java
+++ 
b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/server/TestFusekiServerCmd.java
@@ -25,7 +25,6 @@ import java.io.File;
 import java.io.IOException;
 
 import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -42,10 +41,9 @@ import org.apache.jena.sparql.exec.http.Params;
  */
 public class TestFusekiServerCmd {
 
-    static String basearea = "target/run";
-    static {
-        Lib.setenv("FUSEKI_BASE", basearea);
-    }
+    private static String FUSEKI_BASE = FusekiServerCtl.envFusekiBase;
+
+    private static String basearea = "target/run";
 
     private static void deleteFusekiDir() throws IOException {
         File file = new File(basearea);
@@ -53,10 +51,6 @@ public class TestFusekiServerCmd {
             FileUtils.deleteDirectory(file);
     }
 
-    @BeforeAll static void beforeAll() throws IOException {
-        deleteFusekiDir();
-    }
-
     @BeforeEach void setup() throws IOException {
         clearUp();
     }
@@ -68,6 +62,8 @@ public class TestFusekiServerCmd {
     static void clearUp() throws IOException {
         deleteFusekiDir();
         FusekiServerCtl.clearUpSystemState();
+        // Put back the FUSEKI_BASE setting.
+        Lib.setenv(FUSEKI_BASE, basearea);
     }
 
     @Test public void plainStart() {
@@ -80,7 +76,6 @@ public class TestFusekiServerCmd {
         // Create a persistent configuration.
 
         String dbName = "/ds93" ;
-
         FusekiServer server0 = FusekiServerRunner.construct();
         server0.start();
         addDataset(server0, dbName);
@@ -105,7 +100,7 @@ public class TestFusekiServerCmd {
         String actionDataset = serverURL+"$/datasets";
         String datasetURL = server.datasetURL(dbName);
         Params params = Params.create().add("dbName", dbName).add("dbType", 
"mem");
-        // Use the template form of adding a dataset.s
+        // Use the template form of adding a dataset.
         HttpOp.httpPostForm(actionDataset, params);
     }
 

Reply via email to