diff --git a/.github/workflows/develop-status.yml b/.github/workflows/develop-status.yml
index e6f2b56afba..76301ef8fbe 100644
--- a/.github/workflows/develop-status.yml
+++ b/.github/workflows/develop-status.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- jdk: [11, 21]
+ jdk: [11, 17]
steps:
- uses: actions/checkout@v2
diff --git a/.github/workflows/main-status.yml b/.github/workflows/main-status.yml
index e0683db34ca..fdf918fb68e 100644
--- a/.github/workflows/main-status.yml
+++ b/.github/workflows/main-status.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- jdk: [11, 21]
+ jdk: [11, 17]
steps:
- uses: actions/checkout@v2
diff --git a/core/rio/api/src/main/java/org/eclipse/rdf4j/rio/helpers/RDFaParserSettings.java b/core/rio/api/src/main/java/org/eclipse/rdf4j/rio/helpers/RDFaParserSettings.java
index 14d913b3f7e..ce3d2499199 100644
--- a/core/rio/api/src/main/java/org/eclipse/rdf4j/rio/helpers/RDFaParserSettings.java
+++ b/core/rio/api/src/main/java/org/eclipse/rdf4j/rio/helpers/RDFaParserSettings.java
@@ -22,11 +22,14 @@
public class RDFaParserSettings {
/**
- * Boolean setting for parser to determine the RDFa version to use when processing the document.
- *
- * Defaults to {@link RDFaVersion#RDFA_1_0}.
+ * Boolean setting for parser to determine the RDFa version to use when processing the document. Note that although
+ * these settings are not used within RDF4J, they are in use by external plugins.
+ *
+ * @see https://github.com/eclipse-rdf4j/rdf4j/issues/4779
+ *
+ * Defaults to {@link RDFaVersion#RDFA_1_0}.
*/
- @Deprecated(since = "4.3.0", forRemoval = true)
public static final RioSetting RDFA_COMPATIBILITY = new RioSettingImpl<>(
"org.eclipse.rdf4j.rio.rdfa.version", "RDFa Version Compatibility", RDFaVersion.RDFA_1_0);
diff --git a/core/rio/api/src/main/java/org/eclipse/rdf4j/rio/helpers/RDFaVersion.java b/core/rio/api/src/main/java/org/eclipse/rdf4j/rio/helpers/RDFaVersion.java
index e2d8855479f..48f7ebeea02 100644
--- a/core/rio/api/src/main/java/org/eclipse/rdf4j/rio/helpers/RDFaVersion.java
+++ b/core/rio/api/src/main/java/org/eclipse/rdf4j/rio/helpers/RDFaVersion.java
@@ -11,11 +11,14 @@
package org.eclipse.rdf4j.rio.helpers;
/**
- * Enumeration for tracking versions of the RDFa specification to specify processing capabilities of RDFa modules.
+ * Enumeration for tracking versions of the RDFa specification to specify processing capabilities of RDFa modules. Note
+ * that although these settings are not used within RDF4J, they are in use by external plugins.
+ *
+ * @see https://github.com/eclipse-rdf4j/rdf4j/issues/4779
*
* @author Peter Ansell
*/
-@Deprecated(since = "4.3.0", forRemoval = true)
public enum RDFaVersion {
/**
diff --git a/core/sail/elasticsearch-store/pom.xml b/core/sail/elasticsearch-store/pom.xml
index e4935a4b8e6..a20262a90f2 100644
--- a/core/sail/elasticsearch-store/pom.xml
+++ b/core/sail/elasticsearch-store/pom.xml
@@ -183,7 +183,7 @@
com.github.alexcojocaruelasticsearch-maven-plugin
- 6.26
+ 6.28${skipITs}${skipTests}
@@ -193,7 +193,7 @@
9200false
- ${java.sec.mgr} -Xmx1g
+ ${java.sec.mgr} -Xmx1G -Xms1G1
diff --git a/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ShaclValidator.java b/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ShaclValidator.java
index ca2cff3c05f..f6222b4117b 100644
--- a/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ShaclValidator.java
+++ b/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ShaclValidator.java
@@ -77,7 +77,7 @@ public static ValidationReport validate(Sail dataRepo, Sail shapesRepo) {
}
shapesConnection.commit();
- } catch (Exception e) {
+ } catch (Throwable e) {
logger.warn("Failed to read shapes", e);
throw e;
}
@@ -98,7 +98,7 @@ public static ValidationReport validate(Sail dataRepo, Sail shapesRepo) {
return performValidation(shapes, new ConnectionsGroup(verySimpleRdfsBackwardsChainingConnection, null,
null, null, new Stats(), () -> reasoner,
new ShaclSailConnection.Settings(true, true, true, IsolationLevels.NONE), true));
- } catch (Exception e) {
+ } catch (Throwable e) {
logger.warn("Failed to validate shapes", e);
throw e;
}
diff --git a/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ShapeValidationContainer.java b/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ShapeValidationContainer.java
index 55f6e0d51b9..65ad077440c 100644
--- a/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ShapeValidationContainer.java
+++ b/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ShapeValidationContainer.java
@@ -53,7 +53,12 @@ public ShapeValidationContainer(Shape shape, Supplier planNodeSupplier
} else {
this.planNode = planNode;
}
- } catch (Exception e) {
+ } catch (Throwable e) {
+ logger.warn("Error processing SHACL Shape {}", shape.getId(), e);
+ logger.warn("Error processing SHACL Shape\n{}", shape, e);
+ if (e instanceof Error) {
+ throw e;
+ }
throw new SailException("Error processing SHACL Shape " + shape.getId() + "\n" + shape, e);
}
@@ -76,8 +81,12 @@ public ValidationResultIterator performValidation() {
try (CloseableIteration extends ValidationTuple, SailException> iterator = planNode.iterator()) {
validationResults = new ValidationResultIterator(iterator, effectiveValidationResultsLimitPerConstraint);
return validationResults;
- } catch (Exception e) {
+ } catch (Throwable e) {
logger.warn("Error validating SHACL Shape {}", shape.getId(), e);
+ logger.warn("Error validating SHACL Shape\n{}", shape, e);
+ if (e instanceof Error) {
+ throw e;
+ }
throw new SailException("Error validating SHACL Shape " + shape.getId() + "\n" + shape, e);
} finally {
handlePostLogging(before, validationResults);
diff --git a/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ast/Shape.java b/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ast/Shape.java
index 0bd3af408bd..78145b6aff6 100644
--- a/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ast/Shape.java
+++ b/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/ast/Shape.java
@@ -450,8 +450,9 @@ public PlanNode generatePlans(ConnectionsGroup connectionsGroup, ValidationSetti
} else {
throw new ShaclUnsupportedException("Unknown validation approach: " + validationApproach);
}
- } catch (RuntimeException e) {
+ } catch (Throwable e) {
logger.warn("Error processing SHACL Shape {}", id, e);
+ logger.warn("Error processing SHACL Shape\n{}", this, e);
throw new SailException("Error processing SHACL Shape " + id + "\n" + this, e);
}
@@ -707,7 +708,7 @@ public static List getShapesInContext(ShapeSource shapeSource,
.map(r -> {
try {
return new ShaclProperties(r, shapeSourceWithContext);
- } catch (Exception e) {
+ } catch (Throwable e) {
logger.warn("Error parsing shape {}", r, e);
throw new ShaclShapeParsingException(e, r);
}
@@ -720,7 +721,7 @@ public static List getShapesInContext(ShapeSource shapeSource,
return PropertyShape.getInstance(p, shapeSourceWithContext, parseSettings, cache);
}
throw new ShaclShapeParsingException("Unknown shape type", p.getId());
- } catch (Exception e) {
+ } catch (Throwable e) {
logger.warn("Error parsing shape {}", p.getId(), e);
if (e instanceof ShaclShapeParsingException) {
throw e;
@@ -746,6 +747,7 @@ public String toString() {
statements.setNamespace(RSX.NS);
statements.setNamespace(RDFS.NS);
statements.setNamespace(RDF.NS);
+ statements.setNamespace(DASH.NS);
WriterConfig writerConfig = new WriterConfig()
.set(BasicWriterSettings.PRETTY_PRINT, true)
.set(BasicWriterSettings.INLINE_BLANK_NODES, true);
diff --git a/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/results/lazy/LazyValidationReport.java b/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/results/lazy/LazyValidationReport.java
index 53b4dd3e520..d7eafafdccf 100644
--- a/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/results/lazy/LazyValidationReport.java
+++ b/core/sail/shacl/src/main/java/org/eclipse/rdf4j/sail/shacl/results/lazy/LazyValidationReport.java
@@ -81,7 +81,7 @@ private void evaluateLazyAspect() {
validationResultIterators = null;
}
- } catch (Exception e) {
+ } catch (Throwable e) {
logger.warn("Error evaluating lazy validation report", e);
throw e;
}
@@ -104,7 +104,7 @@ public Model asModel(Model model) {
}
return model;
- } catch (Exception e) {
+ } catch (Throwable e) {
logger.warn("Error converting validation report to model", e);
throw e;
}
diff --git a/pom.xml b/pom.xml
index c00fd122bae..c2b4ebdf9ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -648,7 +648,7 @@
org.apache.maven.pluginsmaven-compiler-plugin
- 3.11.0
+ 3.12.1falseutf8
@@ -729,7 +729,7 @@
org.apache.maven.pluginsmaven-javadoc-plugin
- 3.6.0
+ 3.6.3utf811
@@ -791,7 +791,7 @@
org.apache.maven.pluginsmaven-surefire-plugin
- 3.2.1
+ 3.2.5UTF-8-Xmx2048M
@@ -800,7 +800,7 @@
org.apache.maven.pluginsmaven-failsafe-plugin
- 3.2.1
+ 3.2.5UTF-81
diff --git a/site/content/documentation/programming/lmdb-store.md b/site/content/documentation/programming/lmdb-store.md
index bc15d96e334..ced2e80d236 100644
--- a/site/content/documentation/programming/lmdb-store.md
+++ b/site/content/documentation/programming/lmdb-store.md
@@ -125,7 +125,7 @@ Please note that the actual footprint also depends largely on the size of IRIs a
Some basic information about LMDB database and RAM sizes can be found in the
[OpenLDAP & LMDB Sizing Guide](https://3bmahv3xwn6030jbn72hlx3j-wpengine.netdna-ssl.com/wp-content/uploads/2018/08/OpenLDAP-LMDB-Sizing-Guide.pdf).
-The bottom line is thatt more RAM is better. The best is to have enough RAM to accommodate the
+The bottom line is that more RAM is better. The best is to have enough RAM to accommodate the
entire database or at least the database's working set.