You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2011/02/04 21:02:03 UTC
svn commit: r1067270 - in
/felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl:
ConfigurationImpl.java ConfigurationManager.java
Author: fmeschbe
Date: Fri Feb 4 20:02:03 2011
New Revision: 1067270
URL: http://svn.apache.org/viewvc?rev=1067270&view=rev
Log:
FELIX-2766 Don't throw FileNotFoundException when calling
update() (no-arg signature) on newly created Factory configuration.
Just assume an empty configuration. Also provide ManagedService[Factory]
with empty dictionary if the configuration has no properties (yet) on
update which is the case when calling no-arg update() on newly
created configurations.
Modified:
felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationImpl.java
felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java
Modified: felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationImpl.java?rev=1067270&r1=1067269&r2=1067270&view=diff
==============================================================================
--- felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationImpl.java (original)
+++ felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationImpl.java Fri Feb 4 20:02:03 2011
@@ -257,17 +257,20 @@ class ConfigurationImpl extends Configur
if ( localPersistenceManager != null )
{
// read configuration from persistence (again)
- Dictionary properties = localPersistenceManager.load( getPid() );
-
- // ensure serviceReference pid
- String servicePid = ( String ) properties.get( Constants.SERVICE_PID );
- if ( servicePid != null && !getPid().equals( servicePid ) )
+ if ( localPersistenceManager.exists( getPid() ) )
{
- throw new IOException( "PID of configuration file does match requested PID; expected " + getPid() + ", got "
- + servicePid );
- }
+ Dictionary properties = localPersistenceManager.load( getPid() );
+
+ // ensure serviceReference pid
+ String servicePid = ( String ) properties.get( Constants.SERVICE_PID );
+ if ( servicePid != null && !getPid().equals( servicePid ) )
+ {
+ throw new IOException( "PID of configuration file does match requested PID; expected " + getPid()
+ + ", got " + servicePid );
+ }
- configureFromPersistence( properties );
+ configureFromPersistence( properties );
+ }
// update the service but do not fire an CM_UPDATED event
getConfigurationManager().updated( this, false );
Modified: felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java?rev=1067270&r1=1067269&r2=1067270&view=diff
==============================================================================
--- felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java (original)
+++ felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java Fri Feb 4 20:02:03 2011
@@ -1417,7 +1417,13 @@ public class ConfigurationManager implem
this.config = config;
synchronized ( config )
{
- this.properties = config.getProperties( true );
+ Dictionary props = config.getProperties( true );
+ if ( props == null )
+ {
+ props = new Hashtable();
+ }
+
+ this.properties = props;
this.lastModificationTime = config.getLastModificationTime();
}
}
@@ -1575,7 +1581,7 @@ public class ConfigurationManager implem
{
final ManagedServiceFactory srv = ( ManagedServiceFactory ) bundleContext
.getService( ref );
- if ( srv != null && properties != null )
+ if ( srv != null )
{
Dictionary props = new CaseInsensitiveDictionary( properties );
callPlugins( props, config.getFactoryPid(), ref, config );