This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-packageinit.git
The following commit(s) were added to refs/heads/master by this push:
new 92bad43 SLING-10201 fix unclosed JCR session (#4)
92bad43 is described below
commit 92bad43059e35312d1819bcdb1548ada13f7a0d4
Author: Konrad Windszus <[email protected]>
AuthorDate: Wed Mar 10 09:09:06 2021 +0100
SLING-10201 fix unclosed JCR session (#4)
fix some typos in logging
---
.../impl/ExecutionPlanRepoInitializer.java | 25 ++++++++++------------
.../ExecutionPlanRepoInitializerTest.java | 14 +++++++++---
2 files changed, 22 insertions(+), 17 deletions(-)
diff --git
a/src/main/java/org/apache/sling/jcr/packageinit/impl/ExecutionPlanRepoInitializer.java
b/src/main/java/org/apache/sling/jcr/packageinit/impl/ExecutionPlanRepoInitializer.java
index 4d88d8a..828763c 100644
---
a/src/main/java/org/apache/sling/jcr/packageinit/impl/ExecutionPlanRepoInitializer.java
+++
b/src/main/java/org/apache/sling/jcr/packageinit/impl/ExecutionPlanRepoInitializer.java
@@ -43,6 +43,7 @@ import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
@@ -61,7 +62,7 @@ public class ExecutionPlanRepoInitializer implements
SlingRepositoryInitializer
private File statusFile;
@ObjectClassDefinition(
- name = "Executionplan based Repository Initializer"
+ name = "Execution plan based Repository Initializer"
)
@interface Config {
@@ -151,21 +152,19 @@ public class ExecutionPlanRepoInitializer implements
SlingRepositoryInitializer
st.open();
logger.info("Waiting for PackageRegistry.");
PackageRegistry registry = (PackageRegistry)
st.waitForService(0);
- logger.info("PackageRegistry found - starting execution of
executionplan");
+ logger.info("PackageRegistry found - starting execution of
execution plan");
+ ExecutionPlanBuilder builder = registry.createExecutionPlan();
@SuppressWarnings("deprecation")
Session session = slingRepository.loginAdministrative(null);
- ExecutionPlanBuilder builder = registry.createExecutionPlan();
- BufferedWriter writer = null;
- try {
- writer = new BufferedWriter(new FileWriter(statusFile));
+ try (BufferedWriter writer = new BufferedWriter(new
FileWriter(statusFile))) {
for (String plan : executionPlans) {
- builder.load(new
ByteArrayInputStream(plan.getBytes("UTF-8")));
+ builder.load(new
ByteArrayInputStream(plan.getBytes(StandardCharsets.UTF_8)));
builder.with(session);
ExecutionPlan xplan = builder.execute();
if (xplan.getTasks().size() > 0) {
if (xplan.hasErrors()) {
- IllegalStateException ex = new
IllegalStateException("Excecutionplan execution contained errors - cannot
complete repository initialization.");
+ IllegalStateException ex = new
IllegalStateException("Execution plan contained errors - cannot complete
repository initialization.");
for (PackageTask task : xplan.getTasks()) {
if
(PackageTask.State.ERROR.equals(task.getState())){
ex.addSuppressed(task.getError());
@@ -173,9 +172,9 @@ public class ExecutionPlanRepoInitializer implements
SlingRepositoryInitializer
}
throw ex;
}
- logger.info("executionplan executed with {}
entries", xplan.getTasks().size());
+ logger.info("Execution plan executed with {}
entries", xplan.getTasks().size());
} else {
- logger.info("No tasks found in executionplan - no
additional packages installed.");
+ logger.info("No tasks found in execution plan - no
additional packages installed.");
}
// save hashes to file for crosscheck on subsequent
startup to avoid double processing
@@ -184,15 +183,13 @@ public class ExecutionPlanRepoInitializer implements
SlingRepositoryInitializer
}
} finally {
- if (writer != null) {
- writer.close();
- }
+ session.logout();
}
} finally {
st.close();
}
} else {
- logger.info("No executionplans configured skipping init.");
+ logger.info("No execution plans configured - skipping init.");
}
}
}
diff --git
a/src/test/java/org/apache/sling/jcr/packageinit/ExecutionPlanRepoInitializerTest.java
b/src/test/java/org/apache/sling/jcr/packageinit/ExecutionPlanRepoInitializerTest.java
index 123a3cd..3627f52 100644
---
a/src/test/java/org/apache/sling/jcr/packageinit/ExecutionPlanRepoInitializerTest.java
+++
b/src/test/java/org/apache/sling/jcr/packageinit/ExecutionPlanRepoInitializerTest.java
@@ -39,6 +39,10 @@ import java.util.UUID;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+import javax.jcr.LoginException;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
import org.apache.commons.io.IOUtils;
import org.apache.jackrabbit.vault.packaging.PackageException;
import org.apache.jackrabbit.vault.packaging.PackageId;
@@ -97,6 +101,9 @@ public class ExecutionPlanRepoInitializerTest {
@Mock
SlingRepository slingRepo;
+ @Mock
+ Session adminSession;
+
@Spy
PackageRegistry registry = new FSPackageRegistry();
@@ -117,7 +124,7 @@ public class ExecutionPlanRepoInitializerTest {
@Before
- public void setup() throws IOException, PackageException {
+ public void setup() throws IOException, PackageException, LoginException,
RepositoryException {
when(registry.createExecutionPlan()).thenReturn(builder);
when(builder.execute()).thenReturn(xplan);
this.statusFile = temporaryFolder.newFile(STATUSFILE_NAME +
UUID.randomUUID());
@@ -126,6 +133,7 @@ public class ExecutionPlanRepoInitializerTest {
listAppender.start();
logger.addAppender(listAppender);
foundExceptions = new ArrayList<Exception>();
+ when(slingRepo.loginAdministrative(null)).thenReturn(adminSession);
}
@After
@@ -141,7 +149,7 @@ public class ExecutionPlanRepoInitializerTest {
initializer.processRepository(slingRepo);
List<ILoggingEvent> logsList = listAppender.list;
assertThat(logsList.get(0).getFormattedMessage(),
- is("No executionplans configured skipping init."));
+ is("No execution plans configured - skipping init."));
}
@@ -224,7 +232,7 @@ public class ExecutionPlanRepoInitializerTest {
List<ILoggingEvent> logsList = listAppender.list;
assertEquals("Waiting for PackageRegistry.", logsList.get(0)
.getMessage());
- assertEquals("PackageRegistry found - starting execution of
executionplan", logsList.get(1)
+ assertEquals("PackageRegistry found - starting execution of execution
plan", logsList.get(1)
.getMessage());
}