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");
}