FELIX-4951 : [DS][RFC-190] Correct pid handling
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1689540 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/TargetedPID.java b/scr/src/main/java/org/apache/felix/scr/impl/TargetedPID.java
index 3afd7be..45b2580 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/TargetedPID.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/TargetedPID.java
@@ -25,7 +25,7 @@
/**
* Copied with modifications from felix configadmin.
- *
+ *
* The <code>TargetedPID</code> class represents a targeted PID as read
* from a configuration object.
* <p>
@@ -50,7 +50,7 @@
* <li><code>0</code> -- this PID is not targeted at all</li>
* <li><code>1</code> -- this PID is targeted by the symbolic name</li>
* <li><code>2</code> -- this PID is targeted by the symbolic name and version</li>
- * <li><code>3</code> -- this PID is targeted by the symoblic name, version, and location</li>
+ * <li><code>3</code> -- this PID is targeted by the symbolic name, version, and location</li>
* </ul>
*/
private final short bindingLevel;
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java b/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java
index 4b084a6..625a080 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurationSupport.java
@@ -121,15 +121,15 @@
if ( cao instanceof ConfigurationAdmin )
{
final ConfigurationAdmin ca = ( ConfigurationAdmin ) cao;
- for (String confPid: confPids )
+ for (final String confPid : confPids )
{
final Collection<Configuration> factory = findFactoryConfigurations( ca, confPid,
bundleContext.getBundle() );
if ( !factory.isEmpty() )
{
- boolean created = false;
for ( Configuration config: factory )
{
+ boolean created = false;
Activator.log( LogService.LOG_DEBUG, null,
"Configuring holder {0} with factory configuration {1}", new Object[] {
holder, config }, null );
@@ -142,8 +142,11 @@
config.getProperties(),
changeCount );
}
+ if ( !created )
+ {
+ return false;
+ }
}
- return created;
}
else
{
@@ -162,11 +165,19 @@
long changeCount = changeCounter.getChangeCount( singleton, false, -1 );
holder.configurationUpdated( new TargetedPID( singleton.getPid() ), null,
singleton.getProperties(), changeCount );
- return true;
}
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
}
}
}
+ return !confPids.isEmpty();
}
else
{