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());
     }
 

Reply via email to