diff options
Diffstat (limited to 'cpp/src/IceGrid/Database.cpp')
-rw-r--r-- | cpp/src/IceGrid/Database.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/cpp/src/IceGrid/Database.cpp b/cpp/src/IceGrid/Database.cpp index 30d7e7be165..f33e788bdc0 100644 --- a/cpp/src/IceGrid/Database.cpp +++ b/cpp/src/IceGrid/Database.cpp @@ -243,6 +243,10 @@ Database::addApplicationDescriptor(const ApplicationDescriptorPtr& descriptor) throw ex; } + ApplicationDescriptorHelper helper(_communicator, descriptor); + helper.instantiate(); + descriptor = helper.getDescriptor(); + // // Ensure that the application servers, adapters and objects // aren't already registered. @@ -369,12 +373,15 @@ Database::syncApplicationDescriptor(const ApplicationDescriptorPtr& newDesc) ex.name = newDesc->name; throw ex; } - ApplicationDescriptorPtr origDesc = p->second; + ApplicationDescriptorHelper helper(_communicator, newDesc); + helper.instantiate(); + + // // Synchronize the application descriptor. // - syncApplicationDescriptorNoSync(origDesc, newDesc, entries); + syncApplicationDescriptorNoSync(p->second, helper.getDescriptor(), entries); } // @@ -440,7 +447,7 @@ Database::syncApplicationDescriptorNoSync(const ApplicationDescriptorPtr& origDe DeploymentException ex; ex.reason = "adapter `" + e.id + "' is already registered"; throw ex; - } + } // // Ensure that the new application objects aren't already |