From 3dd493182769abea8aee919503c45adbf3225d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ha=CC=8Avard=20Ottestad?= Date: Thu, 9 May 2024 13:11:16 +0200 Subject: [PATCH] GH-2998 possible improvement to the Changeset --- .../org/eclipse/rdf4j/sail/base/Changeset.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/sail/base/src/main/java/org/eclipse/rdf4j/sail/base/Changeset.java b/core/sail/base/src/main/java/org/eclipse/rdf4j/sail/base/Changeset.java index fd8b3a54b68..a634c35faee 100644 --- a/core/sail/base/src/main/java/org/eclipse/rdf4j/sail/base/Changeset.java +++ b/core/sail/base/src/main/java/org/eclipse/rdf4j/sail/base/Changeset.java @@ -806,6 +806,21 @@ Iterable getApprovedTriples(Resource subj, IRI pred, Value obj) { void removeApproved(Statement next) { assert !closed; + + Model localApproved = approved; + if (localApproved != null && !localApproved.contains(next)) { + boolean readLock = readWriteLock.readLock(); + try { + if (approved != null && !approvedEmpty) { + if (!approved.contains(next)) { + return; + } + } + } finally { + readWriteLock.unlockReader(readLock); + } + } + long writeLock = readWriteLock.writeLock(); try { if (approved != null) {