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