summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Database.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/Database.cpp')
-rw-r--r--cpp/src/IceGrid/Database.cpp13
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