You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2005/03/09 14:11:06 UTC

cvs commit: ws-axis/c/tests/auto_build/testcases/output ComplexLists.expected

dicka       2005/03/09 05:11:06

  Modified:    c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
                        BeanParamWriter.java
               c/tests/auto_build/testcases/client/cpp
                        ComplexListsClient.cpp
               c/tests/auto_build/testcases/output ComplexLists.expected
  Log:
  Removed recent memory leak fixes that cause problems.  Made changes to Client code for handling the printing of nil response values, which had been causing problems on Windows.
  
  PR: AXISCPP-515
  Submitted by: Adrian Dick
  
  Revision  Changes    Path
  1.57      +34 -32    ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java
  
  Index: BeanParamWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- BeanParamWriter.java	8 Mar 2005 09:28:30 -0000	1.56
  +++ BeanParamWriter.java	9 Mar 2005 13:11:05 -0000	1.57
  @@ -400,7 +400,7 @@
   					writer.write("\t" + attribs[i].getTypeName() + " * " + attribs[i].getParamNameAsMember()+ " = NULL;\n");
   					writer.write("\tif ((" + attribs[i].getParamNameAsMember()+ " = pIWSDZ->"+CUtils.getParameterGetValueMethodName(attribs[i].getTypeName(), attribs[i].isAttribute())+"( \""+ soapTagName +"\",0)) != NULL)\n");
   					writer.write("\t\tparam->"+attribs[i].getParamNameAsMember()+" = *( " + attribs[i].getParamNameAsMember()+" );\n");
  -                                        writer.write("\t\tdelete " + attribs[i].getParamNameAsMember()+";\n");
  +//                                        writer.write("\t\tdelete " + attribs[i].getParamNameAsMember()+";\n");
   				}
   			}
   			else
  @@ -501,37 +501,39 @@
   				writer.write("\n"+classname+"::~"+classname+"()\n{\n");
   			}
   		writer.write("\t/*delete any pointer and array members here*/\n");
  -		for(int i = 0; i< attribs.length;i++){
  -			if(attribs[i].isArray()){
  -				if ( attribs[i].isSimpleType())
  -				{
  -					writer.write("\tdelete [] (("+attribs[i].getTypeName()+"*)"+attribs[i].getParamNameAsMember()+".m_Array);\n");
  -				}
  -				else
  -				{
  -					if( isNillable())
  -					{
  -						writer.write("\tdelete "+attribs[i].getParamNameAsMember()+".m_Array;\n");
  -					}
  -					else
  -					{
  -						writer.write("\tdelete [] (("+attribs[i].getTypeName()+"*)"+attribs[i].getParamNameAsMember()+".m_Array);\n");
  -					}
  -				}
  -			}
  -			else if (attribs[i].isAnyType()){
  -				writer.write("\tif ("+attribs[i].getParamNameAsMember()+") \n\t{ \n");
  -				writer.write("\t\tfor (int i=0; i<"+attribs[i].getParamNameAsMember()+"->_size; i++)\n\t\t{\n");
  -				writer.write("\t\t\tif ("+attribs[i].getParamNameAsMember()+"->_array[i]) delete [] "+attribs[i].getParamNameAsMember()+"->_array[i];\n");
  -				writer.write("\t\t}\n");
  -				writer.write("\t\tdelete "+attribs[i].getParamNameAsMember()+";\n");
  -				writer.write("\t}\n");
  -				
  -			}
  -			else if (!attribs[i].isSimpleType()){
  -				writer.write("\tdelete "+attribs[i].getParamNameAsMember()+";\n");				
  -			}
  -		}			
  +		// Adrian - seeing problems of losing data when clearing up,
  +		// so temporarily remove this section, until such time as a better solution is found
  +//		for(int i = 0; i< attribs.length;i++){
  +//			if(attribs[i].isArray()){
  +//				if ( attribs[i].isSimpleType())
  +//				{
  +//					writer.write("\tdelete [] (("+attribs[i].getTypeName()+"*)"+attribs[i].getParamNameAsMember()+".m_Array);\n");
  +//				}
  +//				else
  +//				{
  +//					if( isNillable())
  +//					{
  +//						writer.write("\tdelete "+attribs[i].getParamNameAsMember()+".m_Array;\n");
  +//					}
  +//					else
  +//					{
  +//						writer.write("\tdelete [] (("+attribs[i].getTypeName()+"*)"+attribs[i].getParamNameAsMember()+".m_Array);\n");
  +//					}
  +//				}
  +//			}
  +//			else if (attribs[i].isAnyType()){
  +//				writer.write("\tif ("+attribs[i].getParamNameAsMember()+") \n\t{ \n");
  +//				writer.write("\t\tfor (int i=0; i<"+attribs[i].getParamNameAsMember()+"->_size; i++)\n\t\t{\n");
  +//				writer.write("\t\t\tif ("+attribs[i].getParamNameAsMember()+"->_array[i]) delete [] "+attribs[i].getParamNameAsMember()+"->_array[i];\n");
  +//				writer.write("\t\t}\n");
  +//				writer.write("\t\tdelete "+attribs[i].getParamNameAsMember()+";\n");
  +//				writer.write("\t}\n");
  +//				
  +//			}
  +//			else if (!attribs[i].isSimpleType()){
  +//				writer.write("\tdelete "+attribs[i].getParamNameAsMember()+";\n");				
  +//			}
  +//		}			
   		writer.write("}\n");
   		}catch(IOException e){
   			throw new WrapperFault(e);
  
  
  
  1.2       +61 -37    ws-axis/c/tests/auto_build/testcases/client/cpp/ComplexListsClient.cpp
  
  Index: ComplexListsClient.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/tests/auto_build/testcases/client/cpp/ComplexListsClient.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ComplexListsClient.cpp	7 Mar 2005 14:11:23 -0000	1.1
  +++ ComplexListsClient.cpp	9 Mar 2005 13:11:05 -0000	1.2
  @@ -12,10 +12,66 @@
   
   #include "ComplexLists.hpp"
   #include <axis/AxisException.hpp>
  -#include <iostream>
  +#include <iostream.h>
   
   #define ARRAYSIZE 2
   
  +void printResponse(attrlisterr* ale)
  +{
  +    if(ale)
  +    {
  +        if (ale->errortext)
  +        {
  +            cout << ale->errortext << endl;
  +        }
  +        else
  +        {
  +            cout << "ale->errortext is NULL" << endl;
  +        }
  +        
  +        if (ale->errorcode)
  +        {
  +            cout << ale->errorcode << endl;
  +        }
  +        else
  +        {
  +            cout << "ale->errorcode is NULL" << endl;
  +        }
  +        
  +		if (ale->attrlist_Ref != NULL)
  +		{
  +			if (ale->attrlist_Ref->item.m_Array[0] != NULL)
  +			{
  +				if (ale->attrlist_Ref->item.m_Array[0]->name != NULL)
  +				{
  +					cout << ale->attrlist_Ref->item.m_Array[0]->name << endl;
  +				}
  +				else
  +				{
  +					cout << "ale->attrlist_Ref->item.m_Array[0]->name is NULL" << endl;
  +				}
  +
  +				if (ale->attrlist_Ref->item.m_Array[0]->m_list_Ref != NULL)
  +				{
  +					if (ale->attrlist_Ref->item.m_Array[0]->m_list_Ref->item.m_Array[0]
  +						&& *(ale->attrlist_Ref->item.m_Array[0]->m_list_Ref->item.m_Array[0]))
  +					{
  +						cout << ale->attrlist_Ref->item.m_Array[0]->m_list_Ref->item.m_Array[0] << endl;
  +					}
  +					else
  +					{
  +						cout << "ale->attrlist_Ref->item.m_Array[0]->m_list_Ref->item.m_Array[0]" << endl;
  +					}
  +				}
  +			}
  +		}
  +    }
  +    else
  +    {
  +        cout << "Deserialized response is NULL" << endl;
  +    }
  +}
  +
   int main(int argc, char* argv[])
   {
   	char endpoint[256];
  @@ -72,49 +128,17 @@
   		al.item = npArr;
   
   		attrlisterr* ale = ws->multilist(&ml, &al);
  -		if(ale) {
  -			// Should have an errortext string, an errorcode int and a m_list object returned
  -        	cout << ale->errortext << endl; // should be 'request successful'
  -			cout << ale->errorcode << endl; // should be 7
  -			cout << ale->attrlist_Ref->item.m_Array[0]->name << endl; // 'namepair return'
  -			cout << ale->attrlist_Ref->item.m_Array[0]->m_list_Ref->item.m_Array[0] << endl; // 'never odd or even'
  -		} else {
  -			cout << "Deserialized response is NULL" << endl;
  -		}
  +        printResponse(ale);
   
   		ale = ws->multilist((m_list*)NULL, &al);
  -		if(ale) {
  -			// Should have an errortext string, an errorcode int and a m_list object returned
  -        	cout << ale->errortext << endl; // 'request successful'
  -			cout << ale->errorcode << endl; // 007
  -			cout << ale->attrlist_Ref->item.m_Array[0]->name << endl; // 'namepair return'
  -			cout << ale->attrlist_Ref->item.m_Array[0]->m_list_Ref->item.m_Array[0] << endl; // 'attrlist->m_list-item[0] was NULL'
  -		} else {
  -			cout << "Deserialized response is NULL" << endl;
  -		}
  +        printResponse(ale);
   
   		// Have nil elements in response
   		ale = ws->multilistnil((m_list*)NULL, &al);
  -		if(ale) {
  -			// Should have an errortext string, an errorcode int and a m_list object returned
  -        	cout << ale->errortext << endl; // empty
  -			cout << ale->errorcode << endl; // 0
  -			cout << ale->attrlist_Ref->item.m_Array[0]->name << endl; // empty
  -			cout << ale->attrlist_Ref->item.m_Array[0]->m_list_Ref->item.m_Array[0] << endl;  // empty
  -		} else {
  -			cout << "Deserialized response is NULL" << endl;
  -		}
  +        printResponse(ale);
   
   		ale = ws->complexlist(&al, "hoohah!", &al);
  -		if(ale) {
  -			// Should have an errortext string, an errorcode int and a m_list object returned
  -        	cout << ale->errortext << endl;
  -			cout << ale->errorcode << endl;
  -			cout << ale->attrlist_Ref->item.m_Array[0]->name << endl;
  -			cout << ale->attrlist_Ref->item.m_Array[0]->m_list_Ref->item.m_Array[0] << endl;
  -		} else {
  -			cout << "Deserialized response is NULL" << endl;
  -		}
  +        printResponse(ale);
   
   		delete ws;
   	}
  
  
  
  1.2       +2 -4      ws-axis/c/tests/auto_build/testcases/output/ComplexLists.expected
  
  Index: ComplexLists.expected
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/tests/auto_build/testcases/output/ComplexLists.expected,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ComplexLists.expected	7 Mar 2005 14:11:23 -0000	1.1
  +++ ComplexLists.expected	9 Mar 2005 13:11:06 -0000	1.2
  @@ -6,10 +6,8 @@
   7
   namepair return
   attrlist->m_list-item[0] was NULL
  -
  -0
  -
  -
  +ale->errortext is NULL
  +ale->errorcode is NULL
   request successful
   7
   namepair return