This is an automated email from the ASF dual-hosted git repository.
joerghoh pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-repoinit.git
The following commit(s) were added to refs/heads/master by this push:
new b4be5d2 SLING-12264 only call save() if there's something to save
(#52)
b4be5d2 is described below
commit b4be5d238d8748926411f3161ffee946a0f1e72f
Author: Jörg Hoh <[email protected]>
AuthorDate: Wed Jun 5 13:12:01 2024 +0200
SLING-12264 only call save() if there's something to save (#52)
---
src/main/java/org/apache/sling/jcr/repoinit/impl/NodeVisitor.java | 4 +++-
.../org/apache/sling/jcr/repoinit/impl/RepositoryInitializer.java | 4 +++-
.../apache/sling/jcr/repoinit/impl/RepositoryInitializerFactory.java | 4 +++-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/apache/sling/jcr/repoinit/impl/NodeVisitor.java
b/src/main/java/org/apache/sling/jcr/repoinit/impl/NodeVisitor.java
index 8843f02..33c98a9 100644
--- a/src/main/java/org/apache/sling/jcr/repoinit/impl/NodeVisitor.java
+++ b/src/main/java/org/apache/sling/jcr/repoinit/impl/NodeVisitor.java
@@ -118,7 +118,9 @@ public class NodeVisitor extends DoNothingVisitor {
npv.visitSetProperties(sp);
}
try {
- session.save();
+ if (session.hasPendingChanges()) {
+ session.save();
+ }
} catch (Exception e) {
report(e, "Session.save failed: " + e);
}
diff --git
a/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializer.java
b/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializer.java
index d20c6e3..8d822ba 100644
---
a/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializer.java
+++
b/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializer.java
@@ -105,7 +105,9 @@ public class RepositoryInitializer implements
SlingRepositoryInitializer {
}
log.info("Executing {} repoinit operations from {}",
ops.size(), reference);
processor.apply(s, ops);
- s.save();
+ if (s.hasPendingChanges()) {
+ s.save();
+ }
} catch
(IOException|RuntimeException|RepositoryException|RepoInitParsingException e) {
throw new RepoInitException("Error executing repoinit
from " + reference, e);
}
diff --git
a/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializerFactory.java
b/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializerFactory.java
index 7e40464..a27477e 100644
---
a/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializerFactory.java
+++
b/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializerFactory.java
@@ -197,7 +197,9 @@ public class RepositoryInitializerFactory implements
SlingRepositoryInitializer
return retry.apply(() -> {
try {
processor.apply(session, ops);
- session.save();
+ if (session.hasPendingChanges()) {
+ session.save();
+ }
return new
RetryableOperation.RetryableOperationResult(true,false,reference,null);
} catch (InvalidItemStateException|RepoInitException ex) {
// a retry makes sense, because this exception might be caused
by an concurrent operation