summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/deployment/dep_engine.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/core/deployment/dep_engine.c b/src/core/deployment/dep_engine.c
index f285fb7..de03d99 100644
--- a/src/core/deployment/dep_engine.c
+++ b/src/core/deployment/dep_engine.c
@@ -909,6 +909,9 @@ axis2_dep_engine_load_client(
if(!(dep_engine->conf_builder))
{
+ /* Set the dep_engine to NULL before freeing conf in order to
+ avoid deleting it twice*/
+ axis2_conf_set_dep_engine(dep_engine->conf,env,NULL);
axis2_conf_free(dep_engine->conf, env);
dep_engine->conf = NULL;
}
@@ -924,6 +927,9 @@ axis2_dep_engine_load_client(
status = axis2_conf_builder_populate_conf(dep_engine->conf_builder, env);
if(AXIS2_SUCCESS != status)
{
+ /* Set the dep_engine to NULL before freeing conf in order to
+ avoid deleting it twice*/
+ axis2_conf_set_dep_engine(dep_engine->conf,env,NULL);
axis2_conf_free(dep_engine->conf, env);
dep_engine->conf = NULL;
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Populating Axis2 Configuration failed");
@@ -933,6 +939,9 @@ axis2_dep_engine_load_client(
status = axis2_dep_engine_set_svc_and_module_dir_path(dep_engine, env);
if(AXIS2_SUCCESS != status)
{
+ /* Set the dep_engine to NULL before freeing conf in order to
+ avoid deleting it twice*/
+ axis2_conf_set_dep_engine(dep_engine->conf,env,NULL);
axis2_conf_free(dep_engine->conf, env);
dep_engine->conf = NULL;
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Setting service and module paths failed");
@@ -961,6 +970,9 @@ axis2_dep_engine_load_client(
if(AXIS2_SUCCESS != status)
{
axis2_repos_listener_free(dep_engine->repos_listener, env);
+ /* Set the dep_engine to NULL before freeing conf in order to
+ avoid deleting it twice*/
+ axis2_conf_set_dep_engine(dep_engine->conf,env,NULL);
axis2_conf_free(dep_engine->conf, env);
dep_engine->conf = NULL;
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_MODULE_VALIDATION_FAILED, AXIS2_FAILURE);