Repository: karaf
Updated Branches:
  refs/heads/karaf-4.0.x 68f31c09f -> 6237f43e1


[KARAF-4839] Infinite System bundle restart on feature deployment

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/6237f43e
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/6237f43e
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/6237f43e

Branch: refs/heads/karaf-4.0.x
Commit: 6237f43e1523e629883cfd4713be4473a35d16e5
Parents: 1369d9f
Author: Guillaume Nodet <gno...@apache.org>
Authored: Thu Dec 1 10:18:40 2016 +0100
Committer: Guillaume Nodet <gno...@apache.org>
Committed: Thu Dec 1 10:19:05 2016 +0100

----------------------------------------------------------------------
 .../karaf/deployer/features/FeatureDeploymentListener.java   | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/6237f43e/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java
----------------------------------------------------------------------
diff --git 
a/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java
 
b/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java
index 5a82469..2220b38 100644
--- 
a/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java
+++ 
b/deployer/features/src/main/java/org/apache/karaf/deployer/features/FeatureDeploymentListener.java
@@ -212,10 +212,14 @@ public class FeatureDeploymentListener implements 
ArtifactUrlTransformer, Bundle
                                     Set<String> autoInstallFeatures = new 
HashSet<String>();
                                     for(Feature feature:features) {
                                         if(feature.getInstall() != null && 
feature.getInstall().equals(Feature.DEFAULT_INSTALL_MODE)){
-                                            
autoInstallFeatures.add(feature.getId());
+                                            if 
(!featuresService.isInstalled(feature)) {
+                                                
autoInstallFeatures.add(feature.getId());
+                                            }
                                         }
                                     }
-                                    
featuresService.installFeatures(autoInstallFeatures, 
EnumSet.noneOf(FeaturesService.Option.class));
+                                    if (!autoInstallFeatures.isEmpty()) {
+                                        
featuresService.installFeatures(autoInstallFeatures, 
EnumSet.noneOf(FeaturesService.Option.class));
+                                    }
                                 } else {
                                     //remove older out-of-data feature repo
                                     if 
(repo.getURI().toString().contains(FEATURE_PATH)) {

Reply via email to