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 2015/08/27 10:55:43 UTC
svn commit: r1698093 -
/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java
Author: cziegeler
Date: Thu Aug 27 08:55:43 2015
New Revision: 1698093
URL: http://svn.apache.org/r1698093
Log:
SLING-4970 : Potential NPE with transitive models
Modified:
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java
Modified: sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java?rev=1698093&r1=1698092&r2=1698093&view=diff
==============================================================================
--- sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java (original)
+++ sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java Thu Aug 27 08:55:43 2015
@@ -166,7 +166,7 @@ public class DependencyLifecycleParticip
// we have to create an effective model to add the dependencies
final Model effectiveModel = ModelUtility.getEffectiveModel(info.localModel, resolverOptions);
- final List<Model> dependencies = searchSlingstartDependencies(env, info, effectiveModel);
+ final List<Model> dependencies = searchSlingstartDependencies(env, info, info.localModel, effectiveModel);
info.model = new Model();
for(final Model d : dependencies) {
ModelUtility.merge(info.model, d);
@@ -255,6 +255,7 @@ public class DependencyLifecycleParticip
private static List<Model> searchSlingstartDependencies(
final Environment env,
final ProjectInfo info,
+ final Model rawModel,
final Model effectiveModel)
throws MavenExecutionException {
// slingstart or slingfeature
@@ -332,7 +333,16 @@ public class DependencyLifecycleParticip
}
for(final org.apache.sling.provisioning.model.Artifact r : removeList) {
group.remove(r);
- info.localModel.getFeature(feature.getName()).getRunMode(runMode.getNames()).getArtifactGroup(group.getStartLevel()).remove(r);
+ final Feature localModelFeature = rawModel.getFeature(feature.getName());
+ if ( localModelFeature != null ) {
+ final RunMode localRunMode = localModelFeature.getRunMode(runMode.getNames());
+ if ( localRunMode != null ) {
+ final ArtifactGroup localAG = localRunMode.getArtifactGroup(group.getStartLevel());
+ if ( localAG != null ) {
+ localAG.remove(r);
+ }
+ }
+ }
}
}
}
@@ -348,7 +358,7 @@ public class DependencyLifecycleParticip
// we have to create an effective model to add the dependencies
final Model effectiveModel = ModelUtility.getEffectiveModel(rawModel, new ResolverOptions());
- final List<Model> dependencies = searchSlingstartDependencies(env, info, effectiveModel);
+ final List<Model> dependencies = searchSlingstartDependencies(env, info, rawModel, effectiveModel);
Model mergingModel = new Model();
for(final Model d : dependencies) {
ModelUtility.merge(mergingModel, d);