From 3c04cc0f8012767cff51dbaf80b196f6ceb8eb6c Mon Sep 17 00:00:00 2001 From: Brian Lowe Date: Wed, 2 Jun 2021 18:55:23 +0300 Subject: [PATCH] Abort TDB write transaction before ending if not successfully committed (#230) --- .../impl/jena/tdb/RDFServiceTDB.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/tdb/RDFServiceTDB.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/tdb/RDFServiceTDB.java index a600d4dcf..adcb69826 100644 --- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/tdb/RDFServiceTDB.java +++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/tdb/RDFServiceTDB.java @@ -76,11 +76,19 @@ public class RDFServiceTDB extends RDFServiceJena { } notifyListenersOfPreChangeEvents(changeSet); - dataset.begin(ReadWrite.WRITE); - try { - applyChangeSetToModel(changeSet, dataset); - dataset.commit(); - } finally { + dataset.begin(ReadWrite.WRITE); + try { + boolean committed = false; + try { + applyChangeSetToModel(changeSet, dataset); + dataset.commit(); + committed = true; + } finally { + if(!committed) { + dataset.abort(); + } + } + } finally { dataset.end(); }