You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ma...@apache.org on 2008/07/07 15:09:10 UTC
svn commit: r674481 - in /webservices/axis2/branches/c/post_1_4_mtom/c:
axiom/src/attachments/ samples/server/mtom/ src/core/transport/http/common/
src/core/transport/http/sender/ src/core/transport/http/server/apache2/
src/core/transport/http/util/
Author: manjula
Date: Mon Jul 7 06:09:09 2008
New Revision: 674481
URL: http://svn.apache.org/viewvc?rev=674481&view=rev
Log:
Fixing some memory leaks.
Modified:
webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/data_handler.c
webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_part.c
webservices/axis2/branches/c/post_1_4_mtom/c/samples/server/mtom/mtom.c
webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/common/http_simple_response.c
webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_client.c
webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_transport_sender.c
webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/server/apache2/apache2_worker.c
webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/util/http_transport_utils.c
Modified: webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/data_handler.c
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/data_handler.c?rev=674481&r1=674480&r2=674481&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/data_handler.c (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/data_handler.c Mon Jul 7 06:09:09 2008
@@ -466,7 +466,7 @@
}
else
{
- binary_part->file_name = data_handler->file_name;
+ binary_part->file_name = (axis2_char_t *)axutil_strdup(env, data_handler->file_name);
binary_part->part_size = stat_p.st_size;
binary_part->type = AXIOM_MIME_PART_FILE;
}
Modified: webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_part.c
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_part.c?rev=674481&r1=674480&r2=674481&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_part.c (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_part.c Mon Jul 7 06:09:09 2008
@@ -77,6 +77,23 @@
{
if (mime_part)
{
+ if(mime_part->type == AXIOM_MIME_PART_BUFFER)
+ {
+ if(mime_part->part)
+ {
+ AXIS2_FREE(env->allocator, mime_part->part);
+ mime_part->part = NULL;
+ }
+ }
+ else if(mime_part->type == AXIOM_MIME_PART_FILE)
+ {
+ if(mime_part->file_name)
+ {
+ AXIS2_FREE(env->allocator, mime_part->file_name);
+ mime_part->file_name = NULL;
+ }
+ }
+
AXIS2_FREE(env->allocator, mime_part);
mime_part = NULL;
}
Modified: webservices/axis2/branches/c/post_1_4_mtom/c/samples/server/mtom/mtom.c
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/samples/server/mtom/mtom.c?rev=674481&r1=674480&r2=674481&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/samples/server/mtom/mtom.c (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/samples/server/mtom/mtom.c Mon Jul 7 06:09:09 2008
@@ -137,7 +137,7 @@
{
axiom_data_handler_t *data_handler_res = NULL;
- data_handler_res = axiom_data_handler_create(env, "/home/manjula/axis2/mtom/c/deploy/bin/samples/resources/deep.tar.gz", NULL);
+ data_handler_res = axiom_data_handler_create(env, "/home/manjula/axis2/mtom/c/deploy/bin/samples/resources/axis2.jpg", NULL);
axis2_msg_ctx_set_doing_mtom (msg_ctx, env, AXIS2_TRUE);
ret_node = build_response2(env, data_handler_res);
Modified: webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/common/http_simple_response.c
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/common/http_simple_response.c?rev=674481&r1=674480&r2=674481&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/common/http_simple_response.c (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/common/http_simple_response.c Mon Jul 7 06:09:09 2008
@@ -130,6 +130,23 @@
axutil_array_list_free(simple_response->header_group, env);
}
+ if (simple_response->mime_parts)
+ {
+ int i = 0;
+ for (i = 0; i < axutil_array_list_size(simple_response->mime_parts, env); i++)
+ {
+ axiom_mime_part_t *mime_part = NULL;
+ mime_part = (axiom_mime_part_t *)
+ axutil_array_list_get(simple_response->mime_parts, env, i);
+ if (mime_part)
+ {
+ axiom_mime_part_free(mime_part, env);
+ }
+ }
+ axutil_array_list_free(simple_response->mime_parts, env);
+ }
+
+
AXIS2_FREE(env->allocator, simple_response);
/*
* Stream is not freed
Modified: webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_client.c
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_client.c?rev=674481&r1=674480&r2=674481&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_client.c (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_client.c Mon Jul 7 06:09:09 2008
@@ -133,6 +133,21 @@
{
AXIS2_FREE(env->allocator, http_client->req_body);
}
+ if (http_client->mime_parts)
+ {
+ int i = 0;
+ for (i = 0; i < axutil_array_list_size(http_client->mime_parts, env); i++)
+ {
+ axiom_mime_part_t *mime_part = NULL;
+ mime_part = (axiom_mime_part_t *)
+ axutil_array_list_get(http_client->mime_parts, env, i);
+ if (mime_part)
+ {
+ axiom_mime_part_free(mime_part, env);
+ }
+ }
+ axutil_array_list_free(http_client->mime_parts, env);
+ }
AXIS2_FREE(env->allocator, http_client);
return;
Modified: webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_transport_sender.c
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_transport_sender.c?rev=674481&r1=674480&r2=674481&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_transport_sender.c (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/sender/http_transport_sender.c Mon Jul 7 06:09:09 2008
@@ -229,7 +229,6 @@
}
do_mtom = axis2_http_transport_utils_do_write_mtom(env, msg_ctx);
- /*axis2_msg_ctx_set_doing_mtom(msg_ctx, env, do_mtom);*/
transport_url = axis2_msg_ctx_get_transport_url(msg_ctx, env);
if (transport_url)
@@ -568,9 +567,9 @@
}
}
- /*axiom_output_free(om_output, env);
+ axiom_output_free(om_output, env);
om_output = NULL;
- xml_writer = NULL;*/
+ xml_writer = NULL;
if (transport_url)
{
Modified: webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/server/apache2/apache2_worker.c
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/server/apache2/apache2_worker.c?rev=674481&r1=674480&r2=674481&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/server/apache2/apache2_worker.c (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/server/apache2/apache2_worker.c Mon Jul 7 06:09:09 2008
@@ -51,6 +51,9 @@
axis2_byte_t *buffer,
int buffer_size);
+static void apache2_worker_destroy_mime_parts(
+ axutil_array_list_t *mime_parts,
+ const axutil_env_t *env);
struct axis2_apache2_worker
{
@@ -247,8 +250,6 @@
{
content_length = -1;
request->chunked = 1;
- /*axis2_msg_ctx_set_transfer_encoding(msg_ctx, env,
- AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED);*/
}
if (!http_version)
{
@@ -260,17 +261,6 @@
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Client HTTP version %s",
http_version);
- /*out_desc = axis2_conf_get_transport_out(axis2_conf_ctx_get_conf
- (apache2_worker->conf_ctx, env),
- env, AXIS2_TRANSPORT_ENUM_HTTP);
- in_desc =
- axis2_conf_get_transport_in(axis2_conf_ctx_get_conf
- (apache2_worker->conf_ctx, env), env,
- AXIS2_TRANSPORT_ENUM_HTTP);
-
- msg_ctx = axis2_msg_ctx_create(env, conf_ctx, in_desc, out_desc);
- axis2_msg_ctx_set_server_side(msg_ctx, env, AXIS2_TRUE);*/
-
peer_ip = request->connection->remote_ip;
if (peer_ip)
@@ -1247,6 +1237,9 @@
{
send_status = DECLINED;
}
+
+ apache2_worker_destroy_mime_parts(mime_parts, env);
+ mime_parts = NULL;
}
else if (body_string)
@@ -1335,23 +1328,6 @@
if((mime_part->type) == AXIOM_MIME_PART_BUFFER)
{
len = 0;
- /*written = 0;
- while(written < mime_part->part_size)
- {
- len = 0;
- len = ap_rwrite(mime_part->part + written, mime_part->part_size - written,
- request);
- ap_rflush(request);
- if (len == -1)
- {
- status = AXIS2_FAILURE;
- break;
- }
- else
- {
- written += len;
- }
- }*/
len = ap_rwrite(mime_part->part, mime_part->part_size, request);
ap_rflush(request);
if(len == -1)
@@ -1436,6 +1412,7 @@
if (buffer)
{
AXIS2_FREE(env->allocator, buffer);
+ buffer = NULL;
}
fclose(fp);
return AXIS2_FAILURE;
@@ -1444,22 +1421,6 @@
if(count > 0)
{
len = 0;
- /*written = 0;
- while(written < count)
- {
- len = 0;
- len = ap_rwrite(buffer + written, count - written, request);
- ap_rflush(request);
- if (len == -1)
- {
- status = AXIS2_FAILURE;
- break;
- }
- else
- {
- written += len;
- }
- }*/
len = ap_rwrite(buffer, count, request);
ap_rflush(request);
if(len == -1)
@@ -1473,6 +1434,7 @@
if (buffer)
{
AXIS2_FREE(env->allocator, buffer);
+ buffer = NULL;
}
fclose(fp);
return AXIS2_FAILURE;
@@ -1483,6 +1445,7 @@
if (buffer)
{
AXIS2_FREE(env->allocator, buffer);
+ buffer = NULL;
}
fclose(fp);
return AXIS2_FAILURE;
@@ -1491,6 +1454,28 @@
while(!feof(fp));
fclose(fp);
+ AXIS2_FREE(env->allocator, buffer);
+ buffer = NULL;
return AXIS2_SUCCESS;
}
+static void apache2_worker_destroy_mime_parts(
+ axutil_array_list_t *mime_parts,
+ const axutil_env_t *env)
+{
+ if (mime_parts)
+ {
+ int i = 0;
+ for (i = 0; i < axutil_array_list_size(mime_parts, env); i++)
+ {
+ axiom_mime_part_t *mime_part = NULL;
+ mime_part = (axiom_mime_part_t *)
+ axutil_array_list_get(mime_parts, env, i);
+ if (mime_part)
+ {
+ axiom_mime_part_free(mime_part, env);
+ }
+ }
+ axutil_array_list_free(mime_parts, env);
+ }
+}
Modified: webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/util/http_transport_utils.c
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/util/http_transport_utils.c?rev=674481&r1=674480&r2=674481&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/util/http_transport_utils.c (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/src/core/transport/http/util/http_transport_utils.c Mon Jul 7 06:09:09 2008
@@ -3236,6 +3236,7 @@
if (buffer)
{
AXIS2_FREE(env->allocator, buffer);
+ buffer = NULL;
}
fclose(fp);
return AXIS2_FAILURE;
@@ -3265,6 +3266,7 @@
if (buffer)
{
AXIS2_FREE(env->allocator, buffer);
+ buffer = NULL;
}
fclose(fp);
return AXIS2_FAILURE;
@@ -3275,6 +3277,7 @@
if (buffer)
{
AXIS2_FREE(env->allocator, buffer);
+ buffer = NULL;
}
fclose(fp);
return AXIS2_FAILURE;
@@ -3282,6 +3285,12 @@
}
while(!feof(fp));
+ if(buffer)
+ {
+ AXIS2_FREE(env->allocator, buffer);
+ buffer = NULL;
+ }
+
fclose(fp);
return AXIS2_SUCCESS;
}