You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2025/09/19 09:51:40 UTC
(jena) 02/02: Protect against test failure by external issue
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 cbaaee6512e57632a73756998d00926755c6ba99
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Wed Sep 17 15:10:06 2025 +0100
Protect against test failure by external issue
---
.../TestWebappAdminAddDeleteDatasetTemplate.java | 39 +++++++++++++++++++---
1 file changed, 35 insertions(+), 4 deletions(-)
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAdminAddDeleteDatasetTemplate.java b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAdminAddDeleteDatasetTemplate.java
index 8f4015a280..ae37944880 100644
--- a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAdminAddDeleteDatasetTemplate.java
+++ b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAdminAddDeleteDatasetTemplate.java
@@ -25,13 +25,19 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.io.EOFException;
import java.io.FileNotFoundException;
+import java.io.IOException;
import java.net.http.HttpRequest.BodyPublisher;
import java.net.http.HttpRequest.BodyPublishers;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.concurrent.TimeUnit;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
import org.apache.jena.atlas.io.IO;
import org.apache.jena.atlas.logging.LogCtl;
import org.apache.jena.atlas.web.HttpException;
@@ -46,9 +52,6 @@ import org.apache.jena.sparql.exec.http.Params;
import org.apache.jena.web.HttpSC;
import org.apache.jena.web.HttpSC.Code;
import org.awaitility.Awaitility;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
/** Tests of the admin functionality */
public class TestWebappAdminAddDeleteDatasetTemplate extends AbstractFusekiWebappTest {
@@ -210,7 +213,35 @@ public class TestWebappAdminAddDeleteDatasetTemplate extends AbstractFusekiWebap
}
private void badAddDataserverRequest(String dbName) {
- expect400(()->testAddDataset(dbName));
+ Runnable r = protect(()->testAddDataset(dbName));
+ expect400(r);
+ }
+
+ private static Runnable protect(Runnable action) {
+ return ()-> {
+ try {
+ action.run();
+ } catch (HttpException ex) {
+ if ( ex.getCause() instanceof IOException ) {
+ if ( ex.getCause().getCause() instanceof IOException ) {
+ if ( ex.getCause().getCause().getCause() instanceof EOFException ) {
+ /*
+ * In github actions, this happens intermittently (unknown reason).
+ * It happens more at busy times.
+ * Ignore if the cause is looks like:
+ * Error
+ * org.apache.jena.atlas.web.HttpException: POST ....
+ * Caused by: java.io.IOException: HTTP/1.1 header parser received no bytes
+ * Caused by: java.io.IOException: HTTP/1.1 header parser received no bytes
+ * Caused by: java.io.EOFException: EOF reached while reading
+ */
+ throw new HttpException(400, "Dummy 400");
+ }
+ }
+ }
+ throw ex;
+ }
+ };
}
private static boolean exists(String url) {