You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/05/08 11:45:14 UTC

svn commit: r1794341 - /sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java

Author: cziegeler
Date: Mon May  8 11:45:14 2017
New Revision: 1794341

URL: http://svn.apache.org/viewvc?rev=1794341&view=rev
Log:
SLING-6839 : Exception inside a task factory brings down installer task

Modified:
    sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java

Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java?rev=1794341&r1=1794340&r2=1794341&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java Mon May  8 11:45:14 2017
@@ -51,6 +51,7 @@ import org.apache.sling.installer.api.in
 import org.apache.sling.installer.api.info.InstallationState;
 import org.apache.sling.installer.api.info.Resource;
 import org.apache.sling.installer.api.info.ResourceGroup;
+import org.apache.sling.installer.api.tasks.ChangeStateTask;
 import org.apache.sling.installer.api.tasks.InstallTask;
 import org.apache.sling.installer.api.tasks.InstallTaskFactory;
 import org.apache.sling.installer.api.tasks.InstallationContext;
@@ -314,6 +315,8 @@ implements OsgiInstaller, ResourceChange
 
             }
             this.listener.suspend();
+        } catch ( final Exception fatal) {
+            logger.error("An unexpected error occured in the installer task. Installer is stopped now!", fatal);
         } finally {
             this.backgroundThread = null;
         }
@@ -669,7 +672,12 @@ implements OsgiInstaller, ResourceChange
 
         for(final InstallTaskFactory factory : services) {
             if ( factory != null ) {
-                result = factory.createTask(rrg);
+                try {
+                    result = factory.createTask(rrg);
+                } catch ( final Exception fatal ) {
+                    logger.error("An exception occured while creating a task for " + rrg.getActiveResource()+ ". Resource will be ignored.", fatal);
+                    result = new ChangeStateTask(rrg, ResourceState.IGNORED);
+                }
                 if ( result != null ) {
                     break;
                 }