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 wh...@apache.org on 2004/11/09 16:55:27 UTC
cvs commit: ws-axis/c/tools/trace/org/apache/axis/tracetool AddEntryAndExitTrace.java BodyPart.java Exclusions.java MethodPart.java Signature.java Tracer.java
whitlock 2004/11/09 07:55:27
Modified: c/src/common ArrayBean.cpp AxisTrace.cpp
BasicTypeSerializer.cpp MessageData.cpp Packet.cpp
Param.cpp
c/src/soap SoapDeSerializer.cpp
c/src/transport/axis2 Axis2Transport.cpp
c/src/transport/axis AxisTransport.cpp AxisTransport.h
HttpTransport.cpp
c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp
ServiceHeaderWriter.java WrapHeaderWriter.java
c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
BeanParamWriter.java ServiceHeaderWriter.java
c/tools/trace/org/apache/axis/tracetool
AddEntryAndExitTrace.java BodyPart.java
Exclusions.java MethodPart.java Signature.java
Tracer.java
Log:
Various fixes including...
- Replacing mallocs/frees/strdups with news/deletes
- Changing wsdl2ws to make the generated service artifacts include the correct .hpp header files
- Catch trace
Revision Changes Path
1.29 +6 -6 ws-axis/c/src/common/ArrayBean.cpp
Index: ArrayBean.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/ArrayBean.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- ArrayBean.cpp 29 Oct 2004 15:34:55 -0000 1.28
+++ ArrayBean.cpp 9 Nov 2004 15:55:25 -0000 1.29
@@ -110,10 +110,10 @@
AxisChar** a = (AxisChar**)m_value.sta;
for (int ix=0;ix<m_nSize;ix++)
{
- free(*a);
+ delete [] *a;
a++;
}
- free(m_value.sta);
+ delete [] m_value.sta;
}
break;
case XSD_HEXBINARY:
@@ -121,10 +121,10 @@
xsd__hexBinary* a = (xsd__hexBinary*)m_value.sta;
for (int ix=0;ix<m_nSize;ix++)
{
- free(a->__ptr);
+ delete [] a->__ptr;
a++;
}
- free(m_value.sta);
+ delete [] m_value.sta;
}
break;
case XSD_BASE64BINARY:
@@ -132,10 +132,10 @@
xsd__base64Binary* a = (xsd__base64Binary*)m_value.sta;
for (int ix=0;ix<m_nSize;ix++)
{
- free(a->__ptr);
+ delete [] a->__ptr;
a++;
}
- free(m_value.sta);
+ delete [] m_value.sta;
}
break;
case XSD_DATETIME:
1.39 +3 -2 ws-axis/c/src/common/AxisTrace.cpp
Index: AxisTrace.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/AxisTrace.cpp,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- AxisTrace.cpp 8 Nov 2004 16:47:55 -0000 1.38
+++ AxisTrace.cpp 9 Nov 2004 15:55:25 -0000 1.39
@@ -78,11 +78,12 @@
int AxisTrace::setFilePerm(const char* sFileName)
{
/* int length = strlen (sFileName) + 12;
- char* setPerm = (char *) malloc (length);
+ char* setPerm = new char[length];
if (setPerm)
{
strcpy (setPerm, "chmod 766 ");
strcat (setPerm, sFileName);
+ delete [] setPerm;
}
else
return AXIS_FAIL;
@@ -353,7 +354,7 @@
string line;
for (int is=0; is<m_stack.size(); is++) line += " ";
- line += "!";
+ line += "! ";
if (NULL!=className) {
line += className;
line += "::";
1.32 +4 -4 ws-axis/c/src/common/BasicTypeSerializer.cpp
Index: BasicTypeSerializer.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/BasicTypeSerializer.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- BasicTypeSerializer.cpp 9 Sep 2004 05:56:14 -0000 1.31
+++ BasicTypeSerializer.cpp 9 Nov 2004 15:55:25 -0000 1.32
@@ -151,22 +151,22 @@
const AxisChar* BasicTypeSerializer::encodeToHexBinary
(const xsd__hexBinary* pBinary)
{
- char* outstr = (char*) malloc (pBinary->__size * 2 + 1);
+ char* outstr = new char[pBinary->__size * 2 + 1];
Hex_Encode (outstr, pBinary->__ptr, pBinary->__size);
outstr[pBinary->__size * 2] = 0;
m_AuxStr = outstr;
- free (outstr);
+ delete [] outstr;
return m_AuxStr.c_str ();
}
const AxisChar* BasicTypeSerializer::encodeToBase64Binary (const xsd__base64Binary* pBinary)
{
int len = apr_base64_encode_len (pBinary->__size);
- char* outstr = (char*) malloc (len + 1);
+ char* outstr = new char[len + 1];
len = apr_base64_encode_binary (outstr, pBinary->__ptr, pBinary->__size);
outstr[len] = 0;
m_AuxStr = outstr;
- free (outstr);
+ delete [] outstr;
return m_AuxStr.c_str ();
}
1.29 +6 -6 ws-axis/c/src/common/MessageData.cpp
Index: MessageData.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/MessageData.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- MessageData.cpp 29 Oct 2004 15:34:55 -0000 1.28
+++ MessageData.cpp 9 Nov 2004 15:55:25 -0000 1.29
@@ -45,8 +45,8 @@
while (itCurrentItem != m_Properties.end ())
{
- free ((*itCurrentItem).first);
- free ((*itCurrentItem).second);
+ delete [] (*itCurrentItem).first;
+ delete [] (*itCurrentItem).second;
itCurrentItem++;
}
@@ -138,9 +138,9 @@
int MessageData::setProperty (AxisChar* pachName, const AxisChar* pachValue)
{
- AxisChar* pachTmpName = (AxisChar*) malloc (strlen (pachName) + 1);
+ AxisChar* pachTmpName = new AxisChar[strlen (pachName) + 1];
strcpy (pachTmpName, pachName);
- AxisChar* pachTmpValue = (AxisChar*) malloc (strlen (pachValue) + 1);
+ AxisChar* pachTmpValue = new AxisChar[strlen (pachValue) + 1];
strcpy (pachTmpValue, pachValue);
m_Properties[pachTmpName] = pachTmpValue;
@@ -150,9 +150,9 @@
int MessageData::setProperty (AxisChar* pachName, const void* pachValue, int len)
{
- AxisChar* pachTmpName = (AxisChar*) malloc (strlen (pachName) + 1);
+ AxisChar* pachTmpName = new AxisChar[strlen (pachName) + 1];
strcpy (pachTmpName, pachName);
- AxisChar* pachTmpValue = (AxisChar*) malloc (len);
+ AxisChar* pachTmpValue = new AxisChar[len];
memcpy (pachTmpValue, pachValue, len);
m_Properties[pachTmpName] = pachTmpValue;
1.16 +9 -7 ws-axis/c/src/common/Packet.cpp
Index: Packet.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/Packet.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- Packet.cpp 26 Oct 2004 09:37:57 -0000 1.15
+++ Packet.cpp 9 Nov 2004 15:55:25 -0000 1.16
@@ -46,12 +46,14 @@
case APTHTTP:
count = stream->so.http->op_headercount;
temp = stream->so.http->op_headers;
- if (stream->so.http->op_headers)
- stream->so.http->op_headers = (Ax_header*) realloc(temp,
- (sizeof(Ax_header) * (count + 1)));
+ if (stream->so.http->op_headers)
+ {
+ stream->so.http->op_headers = new Ax_header[count + 1];
+ memcpy(stream->so.http->op_headers,temp,sizeof(Ax_header)*(count+1));
+ delete [] temp;
+ }
else
- stream->so.http->op_headers = (Ax_header *)
- malloc ((sizeof (Ax_header) * (count + 1)));
+ stream->so.http->op_headers = new Ax_header[count + 1];
stream->so.http->op_headers[count].headername = pchkey;
stream->so.http->op_headers[count].headervalue = pchvalue;
stream->so.http->op_headercount = count + 1;
@@ -74,13 +76,13 @@
if (stream->so.http->ip_headercount > 0)
{
stream->so.http->ip_headercount = 0;
- free (stream->so.http->ip_headers);
+ delete [] stream->so.http->ip_headers;
stream->so.http->ip_headers = NULL;
}
if (stream->so.http->op_headercount > 0)
{
stream->so.http->op_headercount = 0;
- free (stream->so.http->op_headers);
+ delete [] stream->so.http->op_headers;
stream->so.http->op_headers = NULL;
}
break;
1.42 +4 -4 ws-axis/c/src/common/Param.cpp
Index: Param.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/Param.cpp,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- Param.cpp 29 Oct 2004 15:34:55 -0000 1.41
+++ Param.cpp 9 Nov 2004 15:55:25 -0000 1.42
@@ -53,14 +53,14 @@
case XSD_NOTATION:
if (AxisEngine::m_bServer)
{
- free ((void*) m_Value.pStrValue);
+ delete [] const_cast<char*>(m_Value.pStrValue);
}
break;
case XSD_BASE64BINARY:
case XSD_HEXBINARY:
if (AxisEngine::m_bServer)
{
- free ((void*) (m_Value.hbValue.__ptr));
+ delete [] m_Value.hbValue.__ptr;
}
break;
case XSD_ANY:
@@ -68,9 +68,9 @@
for (i=0; i<pAny->_size; i++)
{
pStr = pAny->_array[i];
- if (pStr) free(pStr);
+ if (pStr) delete [] pStr;
}
- free(pAny);
+ delete [] pAny;
default:;
}
}
1.98 +12 -6 ws-axis/c/src/soap/SoapDeSerializer.cpp
Index: SoapDeSerializer.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapDeSerializer.cpp,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -r1.97 -r1.98
--- SoapDeSerializer.cpp 8 Nov 2004 13:34:39 -0000 1.97
+++ SoapDeSerializer.cpp 9 Nov 2004 15:55:26 -0000 1.98
@@ -791,13 +791,15 @@
}\
/* if we come here that means the array allocated is */\
/* not enough. So double it */\
- Array.m_Array = realloc(Array.m_Array, \
- sizeof(cpp_type)*(Array.m_Size*2));\
+ void *tmp=Array.m_Array;\
+ Array.m_Array = new cpp_type[Array.m_Size*2];\
if (!Array.m_Array) \
{\
Array.m_Size = 0;\
return Array;\
}\
+ memcpy(Array.m_Array,tmp,Array.m_Size*sizeof(cpp_type));\
+ delete [] tmp;\
Array.m_Size *= 2;\
/*Array.m_RealSize = Array.m_Size;*/\
}\
@@ -995,13 +997,15 @@
/* if we come here that means the array allocated is not enough
* So double it
*/
- Array.m_Array = realloc(Array.m_Array,
- sizeof(int)*(Array.m_Size*2));
+ void *tmp=Array.m_Array;
+ Array.m_Array = new int[Array.m_Size*2];
if (!Array.m_Array)
{
Array.m_Size = 0;
return Array;
}
+ memcpy(Array.m_Array,tmp,Array.m_Size*sizeof(int));
+ delete [] tmp;
Array.m_Size *= 2;
/* Array.m_RealSize = Array.m_Size;*/
}
@@ -1115,13 +1119,15 @@
}
/* if we come here that means the array allocated is */
/* not enough. So double it */
- Array.m_Array = realloc(Array.m_Array,
- sizeof(long)*(Array.m_Size*2));
+ void *tmp=Array.m_Array;
+ Array.m_Array = new long[Array.m_Size*2];
if (!Array.m_Array)
{
Array.m_Size = 0;
return Array;
}
+ memcpy(Array.m_Array,tmp,Array.m_Size*sizeof(long));
+ delete [] tmp;
Array.m_Size *= 2;
/*Array.m_RealSize = Array.m_Size;*/
}
1.14 +1 -1 ws-axis/c/src/transport/axis2/Axis2Transport.cpp
Index: Axis2Transport.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/transport/axis2/Axis2Transport.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- Axis2Transport.cpp 9 Nov 2004 09:40:55 -0000 1.13
+++ Axis2Transport.cpp 9 Nov 2004 15:55:26 -0000 1.14
@@ -59,7 +59,7 @@
{
if (m_pcEndpointUri)
{
- free (m_pcEndpointUri);
+ delete [] m_pcEndpointUri;
}
delete m_pChannel;
1.41 +1 -1 ws-axis/c/src/transport/axis/AxisTransport.cpp
Index: AxisTransport.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/transport/axis/AxisTransport.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- AxisTransport.cpp 5 Nov 2004 09:44:19 -0000 1.40
+++ AxisTransport.cpp 9 Nov 2004 15:55:26 -0000 1.41
@@ -67,7 +67,7 @@
if(m_pHttpTransport)
delete m_pHttpTransport;
if(m_pcEndpointUri)
- free(m_pcEndpointUri);
+ delete [] m_pcEndpointUri;
}
int AxisTransport::openConnection()
1.14 +1 -1 ws-axis/c/src/transport/axis/AxisTransport.h
Index: AxisTransport.h
===================================================================
RCS file: /home/cvs/ws-axis/c/src/transport/axis/AxisTransport.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- AxisTransport.h 6 Aug 2004 14:44:40 -0000 1.13
+++ AxisTransport.h 9 Nov 2004 15:55:26 -0000 1.14
@@ -58,7 +58,7 @@
void setAttachment(const char* pcAttachmentId, const char* pcAttachment){};
const char* getAttachment(const char* pcAttachmentId){return "value";};
void setEndpointUri(const char* pcEndpointUri)
- {m_pcEndpointUri = strdup(pcEndpointUri);};
+ {m_pcEndpointUri = new char[strlen(pcEndpointUri)+1]; strcpy(m_pcEndpointUri,pcEndpointUri);};
void setSessionId(const char* pcSessionId){};
const char* getSessionId(){return "some session id";};
const char* getServiceName();
1.47 +2 -2 ws-axis/c/src/transport/axis/HttpTransport.cpp
Index: HttpTransport.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/transport/axis/HttpTransport.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- HttpTransport.cpp 26 Oct 2004 10:41:35 -0000 1.46
+++ HttpTransport.cpp 9 Nov 2004 15:55:26 -0000 1.47
@@ -725,7 +725,7 @@
sprintf(pcIntToBuff, "%d", nHttpStatusCode);
strcpy(pcMessage, "Http error code is : ");
strcat(pcMessage, pcIntToBuff);
- throw AxisTransportException(SERVER_TRANSPORT_PROCESS_EXCEPTION, strdup(pcMessage));
+ throw AxisTransportException(SERVER_TRANSPORT_PROCESS_EXCEPTION, pcMessage);
}
else if (nHttpStatus == 4)
/* Status code is 4xx; some error has occurred */
@@ -737,7 +737,7 @@
sprintf(pcIntToBuff, "%d", nHttpStatusCode);
strcpy(pcMessage, "Http error code is : ");
strcat(pcMessage, pcIntToBuff);
- throw AxisTransportException(SERVER_TRANSPORT_PROCESS_EXCEPTION, strdup(pcMessage));
+ throw AxisTransportException(SERVER_TRANSPORT_PROCESS_EXCEPTION, pcMessage);
}
else if (nHttpStatus == 5)
/* Status code is 5xx; some error has occurred */
1.31 +1 -1 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ServiceHeaderWriter.java
Index: ServiceHeaderWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ServiceHeaderWriter.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- ServiceHeaderWriter.java 9 Nov 2004 10:26:20 -0000 1.30
+++ ServiceHeaderWriter.java 9 Nov 2004 15:55:26 -0000 1.31
@@ -213,7 +213,7 @@
Iterator types = this.wscontext.getTypemap().getTypes().iterator();
HashSet typeSet = new HashSet();
writer.write("#include <axis/server/AxisUserAPI.hpp>\n");
- writer.write("#include \"AxisServiceException.h\" \n\n");
+ writer.write("#include \"AxisServiceException.hpp\" \n\n");
String typeName = null;
while (types.hasNext())
{
1.26 +1 -1 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapHeaderWriter.java
Index: WrapHeaderWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapHeaderWriter.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- WrapHeaderWriter.java 9 Nov 2004 10:26:20 -0000 1.25
+++ WrapHeaderWriter.java 9 Nov 2004 15:55:26 -0000 1.26
@@ -145,7 +145,7 @@
writer.write("#include <axis/server/IMessageData.hpp>\n");
writer.write("#include <axis/server/GDefine.hpp>\n");
writer.write("#include <axis/server/AxisWrapperAPI.hpp>\n");
- writer.write("#include \"AxisServiceException.h\" \n");
+ writer.write("#include \"AxisServiceException.hpp\" \n");
writer.write("AXIS_CPP_NAMESPACE_USE \n\n");
//writeFaultHeaders();
1.35 +2 -2 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.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- BeanParamWriter.java 4 Nov 2004 14:06:24 -0000 1.34
+++ BeanParamWriter.java 9 Nov 2004 15:55:26 -0000 1.35
@@ -329,9 +329,9 @@
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]) free("+attribs[i].getParamNameAsMember()+"->_array[i]);\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\tfree("+attribs[i].getParamNameAsMember()+");\n");
+ writer.write("\t\tdelete "+attribs[i].getParamNameAsMember()+";\n");
writer.write("\t}\n");
}
1.21 +1 -1 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ServiceHeaderWriter.java
Index: ServiceHeaderWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ServiceHeaderWriter.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- ServiceHeaderWriter.java 9 Nov 2004 10:26:21 -0000 1.20
+++ ServiceHeaderWriter.java 9 Nov 2004 15:55:26 -0000 1.21
@@ -75,7 +75,7 @@
Iterator types = this.wscontext.getTypemap().getTypes().iterator();
HashSet typeSet = new HashSet();
writer.write("#include <axis/server/AxisUserAPI.hpp>\n");
- writer.write("#include \"AxisServiceException.h\" \n\n");
+ writer.write("#include \"AxisServiceException.hpp\" \n\n");
while (types.hasNext())
{
atype = (Type) types.next();
1.3 +3 -1 ws-axis/c/tools/trace/org/apache/axis/tracetool/AddEntryAndExitTrace.java
Index: AddEntryAndExitTrace.java
===================================================================
RCS file: /home/cvs/ws-axis/c/tools/trace/org/apache/axis/tracetool/AddEntryAndExitTrace.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AddEntryAndExitTrace.java 27 Sep 2004 15:33:46 -0000 1.2
+++ AddEntryAndExitTrace.java 9 Nov 2004 15:55:26 -0000 1.3
@@ -139,8 +139,10 @@
BodyPart[] bps = mp.getBodyParts();
for (int i = 0; i < bps.length; i++) {
outputFile.write(bps[i].getCodeFragment());
- if (bps[i].getReturnValue() != null)
+ if (bps[i].isReturn())
outputFile.traceExit(bps[i].getReturnValue());
+ else if (bps[i].isCatch())
+ outputFile.traceCatch(bps[i].getCaughtValue());
else if (i < bps.length - 1)
outputFile.traceExit();
}
1.2 +38 -3 ws-axis/c/tools/trace/org/apache/axis/tracetool/BodyPart.java
Index: BodyPart.java
===================================================================
RCS file: /home/cvs/ws-axis/c/tools/trace/org/apache/axis/tracetool/BodyPart.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BodyPart.java 20 Sep 2004 16:09:58 -0000 1.1
+++ BodyPart.java 9 Nov 2004 15:55:26 -0000 1.2
@@ -20,23 +20,58 @@
* statement, this body part also contains the return value.
*/
public class BodyPart {
- String codeFragment;
- String returnValue = null;
+ public final static int TRAILING = 0;
+ public final static int RETURN = 1;
+ public final static int CATCH = 2;
+
+ private String codeFragment;
+ private String returnValue = null;
+ private Parameter caughtValue = null;
+ private int type;
+
+ BodyPart(String cf) {
+ codeFragment = cf;
+ type = TRAILING;
+ }
BodyPart(String cf, String rv) {
codeFragment = cf;
- if (null != rv && !Utils.isSpace(rv))
+ if (null != rv && !Utils.isSpace(rv)) {
+ type = RETURN;
returnValue = rv;
+ } else type = TRAILING;
+ }
+
+ BodyPart(String cf, Parameter cv) {
+ codeFragment = cf;
+ caughtValue = cv;
+ type = CATCH;
}
String getCodeFragment() {
return codeFragment;
}
+ boolean isTrailing() {
+ return TRAILING==type;
+ }
+
+ boolean isReturn() {
+ return RETURN==type;
+ }
+
+ boolean isCatch() {
+ return CATCH==type;
+ }
+
String getReturnValue() {
if (returnValue != null)
return returnValue.trim();
else
return null;
+ }
+
+ Parameter getCaughtValue() {
+ return caughtValue;
}
}
1.7 +1 -0 ws-axis/c/tools/trace/org/apache/axis/tracetool/Exclusions.java
Index: Exclusions.java
===================================================================
RCS file: /home/cvs/ws-axis/c/tools/trace/org/apache/axis/tracetool/Exclusions.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Exclusions.java 4 Nov 2004 14:42:21 -0000 1.6
+++ Exclusions.java 9 Nov 2004 15:55:26 -0000 1.7
@@ -44,6 +44,7 @@
"Channel.hpp",
"Channel.h",
"Channel.cpp",
+ "SoapSerializer.cpp",
// Axis.cpp contains a copyright sign (circle with a "C" in it) which
// makes readline throw a MalformedInputException on linux possibly due to
// locale/charset problems.
1.2 +24 -10 ws-axis/c/tools/trace/org/apache/axis/tracetool/MethodPart.java
Index: MethodPart.java
===================================================================
RCS file: /home/cvs/ws-axis/c/tools/trace/org/apache/axis/tracetool/MethodPart.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MethodPart.java 20 Sep 2004 16:09:58 -0000 1.1
+++ MethodPart.java 9 Nov 2004 15:55:26 -0000 1.2
@@ -51,14 +51,28 @@
// Add in trace exit at all the return statements in the method.
ArrayList al = new ArrayList();
- int idx;
- while (-1 != (idx = Utils.indexOf(b, "return"))) {
- String frag = b.substring(0, idx);
- String rest = b.substring(idx + "return".length());
- String retVal = rest.substring(0, Utils.indexOf(rest, ';'));
- BodyPart bp = new BodyPart(frag, retVal);
- al.add(bp);
- b = b.substring(idx + "return".length() + retVal.length() + 1);
+ int idxR = Utils.indexOf(b, "return");
+ int idxC = Utils.indexOf(b, "catch");
+ while (-1 != idxR || -1 != idxC) {
+ if (-1 == idxC || (-1 != idxR && idxR < idxC)) {
+ String frag = b.substring(0, idxR);
+ String rest = b.substring(idxR + "return".length());
+ String retVal = rest.substring(0, Utils.indexOf(rest, ';'));
+ BodyPart bp = new BodyPart(frag, retVal);
+ al.add(bp);
+ b = b.substring(idxR + "return".length() + retVal.length() + 1);
+ } else {
+ String frag = b.substring(0, idxC);
+ String rest = b.substring(idxC);
+ int brace = Utils.indexOf(rest, "{");
+ Signature signature = new Signature(rest.substring(0,brace));
+ frag = frag + rest.substring(0,brace+1);
+ BodyPart bp = new BodyPart(frag, signature.getParameters()[0]);
+ al.add(bp);
+ b = rest.substring(brace+1);
+ }
+ idxR = Utils.indexOf(b, "return");
+ idxC = Utils.indexOf(b, "catch");
}
// Add in trace exit before the last } if there are no returns in
@@ -82,12 +96,12 @@
&& null == signature.getReturnType().getType()) {
int last = b.lastIndexOf('}');
String b2 = b.substring(0, last);
- al.add(new BodyPart(b2, null));
+ al.add(new BodyPart(b2));
b = b.substring(last);
}
// The final body part is the last }
- al.add(new BodyPart(b, null));
+ al.add(new BodyPart(b));
BodyPart[] bps = new BodyPart[al.size()];
System.arraycopy(al.toArray(), 0, bps, 0, al.size());
1.4 +1 -2 ws-axis/c/tools/trace/org/apache/axis/tracetool/Signature.java
Index: Signature.java
===================================================================
RCS file: /home/cvs/ws-axis/c/tools/trace/org/apache/axis/tracetool/Signature.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Signature.java 4 Nov 2004 14:42:21 -0000 1.3
+++ Signature.java 9 Nov 2004 15:55:26 -0000 1.4
@@ -310,8 +310,7 @@
}
// Copes with void func(void)
- // TODO: Cope with ...
- if (!p.isVoid() && !p.isDotDotDot())
+ if (!p.isVoid())
alParams.add(p);
}
1.6 +23 -0 ws-axis/c/tools/trace/org/apache/axis/tracetool/Tracer.java
Index: Tracer.java
===================================================================
RCS file: /home/cvs/ws-axis/c/tools/trace/org/apache/axis/tracetool/Tracer.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Tracer.java 2 Nov 2004 13:53:32 -0000 1.5
+++ Tracer.java 9 Nov 2004 15:55:26 -0000 1.6
@@ -183,6 +183,26 @@
flush();
}
+ void traceCatch(Parameter value) throws Exception {
+ if (!signature.traceable())
+ return;
+
+ String line =
+ "\n"
+ + "\t#ifdef ENABLE_AXISTRACE\n"
+ + "\t\tif (g_pAT && g_pAT->isTraceOn())\n"
+ + "\t\t\tg_pAT->traceCatch("
+ + getClassName()
+ + ", \""
+ + signature.getMethodName()
+ + "\""
+ + getTypeParms(value);
+ line += ");\t" + SIGNATURE + "\n";
+ line += "\t#endif\n";
+ write(line);
+ flush();
+ }
+
public void write(String s) throws IOException {
super.write(s);
if (AddEntryAndExitTrace.verbose)
@@ -193,6 +213,9 @@
// TODO cope with pointers to primitives
// TODO cope with references
private String getTypeParms(Parameter p) {
+ // copes with catch (...)
+ if ("...".equals(p.getType())) return " ";
+
String parms = ",\n\t\t\t\t\tAXIS_CPP_NAMESPACE_PREFIX TRACETYPE_";
String name = p.getName();
if (null == name)