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.alexcojocaru elasticsearch-maven-plugin - 6.26 + 6.28 ${skipITs} ${skipTests} @@ -193,7 +193,7 @@ 9200 false - ${java.sec.mgr} -Xmx1g + ${java.sec.mgr} -Xmx1G -Xms1G 1 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 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.plugins maven-compiler-plugin - 3.11.0 + 3.12.1 false utf8 @@ -729,7 +729,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.6.0 + 3.6.3 utf8 11 @@ -791,7 +791,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.1 + 3.2.5 UTF-8 -Xmx2048M @@ -800,7 +800,7 @@ org.apache.maven.plugins maven-failsafe-plugin - 3.2.1 + 3.2.5 UTF-8 1 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.