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 wh...@apache.org on 2005/04/25 14:50:39 UTC

cvs commit: ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal ClientStubWriter.java

whitlock    2005/04/25 05:50:39

  Modified:    c/src/soap SoapFault.cpp
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
                        ClientStubWriter.java
  Log:
  AXISCPP-628 SoapFault never gets deleted during exception processing
  delete pSoapFault in the generated stub before exceptions are thrown back to the client application. Unfortunately this caused an exception in ~SOAPFault which is fixed by initialising m_pFaultDetail properly and checking that it's not NULL before deleting it.
  
  Revision  Changes    Path
  1.52      +2 -1      ws-axis/c/src/soap/SoapFault.cpp
  
  Index: SoapFault.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapFault.cpp,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- SoapFault.cpp	23 Mar 2005 15:44:59 -0000	1.51
  +++ SoapFault.cpp	25 Apr 2005 12:50:38 -0000	1.52
  @@ -65,6 +65,7 @@
   SoapFault::SoapFault()
   {
       m_bIsSimpleDetail = false;
  +    m_pFaultDetail = NULL;
   }
   
   SoapFault::~SoapFault()
  @@ -72,7 +73,7 @@
       delete m_pFaultcodeParam;
       delete m_pFaultstringParam;
       delete m_pFaultactorParam;
  -    delete m_pFaultDetail;
  +    if (NULL!=m_pFaultDetail) delete m_pFaultDetail;
       m_pFaultcodeParam = NULL;
       m_pFaultstringParam = NULL;
       m_pFaultactorParam = NULL;
  
  
  
  1.86      +4 -0      ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
  
  Index: ClientStubWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java,v
  retrieving revision 1.85
  retrieving revision 1.86
  diff -u -r1.85 -r1.86
  --- ClientStubWriter.java	23 Mar 2005 15:45:05 -0000	1.85
  +++ ClientStubWriter.java	25 Apr 2005 12:50:39 -0000	1.86
  @@ -1145,6 +1145,7 @@
   	    writer.write ("\t\t\t\t\tdelete [] const_cast<char*>(detail);\n");
   		writer.write ("\t\t\t\t}\n\n");
   	    writer.write ("\t\t\t\tm_pCall->unInitialize();\n");
  +	    writer.write ("\t\t\t\tdelete pSoapFault;\n");
   	    writer.write ("\t\t\t\tthrow ofe;\n");
   	}
   	else
  @@ -1233,6 +1234,7 @@
   	    writer.write ("\t\t\t\t\tdelete [] const_cast<char*>(detail);\n");
   		writer.write ("\t\t\t\t}\n\n");
   	    writer.write ("\t\t\t\tm_pCall->unInitialize();\n");
  +	    writer.write ("\t\t\t\tdelete pSoapFault;\n");
   	    writer.write ("\t\t\t\tthrow ofe;\n");
   	    writer.write ("\t\t\t}\n");
   	}
  @@ -1240,6 +1242,7 @@
   	writer.write ("\t\telse\n");
   	writer.write ("\t\t{\n");
   	writer.write ("\t\t\tm_pCall->unInitialize();\n"); // AXISCPP-477
  +	writer.write ("\t\t\tdelete pSoapFault;\n");
   	writer.write ("\t\t\tthrow;\n");
   	writer.write ("\t\t}\n");
   	writer.write ("\t}\n");
  @@ -1280,6 +1283,7 @@
   		write
   		("\t\t\t\tpFaultDetail->setExceptionCode(e.getExceptionCode());\n");
   	    writer.write ("\t\t\t\tm_pCall->unInitialize();\n");
  +	    writer.write ("\t\t\t\tdelete pSoapFault;\n");
   	    writer.write ("\t\t\t\tthrow *pFaultDetail;\n");
   	    writer.write ("\t\t\t}\n");
   	}