[
https://issues.apache.org/jira/browse/AXIS2-3462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dave Meier updated AXIS2-3462:
------------------------------
Attachment: adb_Set_Value_By.c
adb_Set_Value_By.c
> WSDL2C:
> --------
>
> Key: AXIS2-3462
> URL: https://issues.apache.org/jira/browse/AXIS2-3462
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: codegen
> Affects Versions: 1.3
> Environment: Windows XP
> Reporter: Dave Meier
> Priority: Blocker
> Attachments: adb_NameValue.c, adb_Set_Value_By.c,
> aewebservicesaxis70.wsdl
>
>
> Using:
> org.apache.axis2.wsdl.WSDL2C -f -uri aewebservices70.wsdl -o
> aewebservicesaxis70 -d adb -ss -sd
> Problem:
> In the serialize methods, the namespaces hashtable is being freed for many of
> my adb objects, but one object that is nested frees this hashtable, then
> returns and the calling serialize method then tries to use the freed table
> and crashes.
> Here's a code fragment showing the calling serialize method
> (adb_NameValue_serialize(...)):
> if (!_NameValue->is_valid_setValueBy)
> {
> /* no need to complain for minoccurs=0 element */
> }
> else
> {
> start_input_str = (axis2_char_t*)AXIS2_MALLOC(env->allocator,
> sizeof(axis2_char_t) *
> (4 + axutil_strlen(p_prefix) +
> axutil_strlen("setValueBy") +
> ADB_DEFAULT_DIGIT_LIMIT* 2));
> end_input_str = (axis2_char_t*)AXIS2_MALLOC(env->allocator,
> sizeof(axis2_char_t) *
> (5 + ADB_DEFAULT_DIGIT_LIMIT + axutil_strlen("setValueBy")));
> /*
> * parsing setValueBy element
> */
> sprintf(start_input_str, "<%s%ssetValueBy",
> p_prefix?p_prefix:"",
> (p_prefix && axutil_strcmp(p_prefix, ""))?":":"");
> start_input_str_len = axutil_strlen(start_input_str);
> sprintf(end_input_str, "</%s%ssetValueBy>",
> p_prefix?p_prefix:"",
> (p_prefix && axutil_strcmp(p_prefix, ""))?":":"");
> end_input_str_len = axutil_strlen(end_input_str);
> if(!adb_Set_Value_By_is_particle())
> {
> axutil_stream_write(stream, env, start_input_str, start_input_str_len);
> }
> adb_Set_Value_By_serialize(_NameValue->property_setValueBy,
> env, current_node, parent_element,
> adb_Set_Value_By_is_particle() || AXIS2_FALSE, namespaces,
> next_ns_index); // THIS IS WHERE namespaces gets freed
> if(!adb_Set_Value_By_is_particle())
> {
> axutil_stream_write(stream, env, end_input_str, end_input_str_len);
> }
> }
> if(!(p_prefix = (axis2_char_t*)axutil_hash_get(namespaces,
> "urn:aewebservicesaxis70", AXIS2_HASH_KEY_STRING))) // THIS IS WHERE it gets
> used again and crashes
> ...
> I will attach my wsdl file and the two adb files involved in the code above (
> adb_NameValue.c which contains the above code and adb_Set_Value_By.c which
> contains the adb_Set_Value_By_serialize(...) method that frees the namespaces
> hashtable.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]