Hi Dushshantha,
Yes that's fixed it. Thanks!
Mark
Mark Whitlock
IBM
----- Forwarded by Mark Whitlock/UK/IBM on 06/07/2005 11:13 -----
"Dushshantha
Chandradasa"
<[EMAIL PROTECTED] To
tusa.com> "Apache AXIS C Developers List"
<[email protected]>
06/07/2005 05:23 cc
Subject
Please respond to RE: Dushshantha: Exception model
"Apache AXIS C
Developers List"
Hi Mark,
I'm very sorry about the situation. Yes it was my fault. I tested this
only with Windows (and it is working fine in Windows) because my Linux
platform is down :-(
I looked in to this again and I noticed that the constructor of
AxisGenException used in the faulty line was as follows:
AxisGenException(const int iExceptionCode, char* pcMessage = NULL)
NOTE: pcMessage was not a const char*
Would that be the problem here?? I found this mistake in several classes
that I have modified. I fixed it to be const char*. Could somebody
please test this and let us know the progress???
Regards,
Dushshantha
-----Original Message-----
From: Mark Whitlock [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 05, 2005 10:03 PM
To: [email protected]
Subject: Dushshantha: Exception model
Hi Dushshantha,
The fix you put in for the exception model does not build for us on AIX
and
Linux, but I don't understand why. It fails on lines such as...
throw AxisGenException(e.getExceptionCode(),
const_cast<char*>(e.what()));
which is line 218 of ClientAxisEngine.cpp. It fails with this error....
ClientAxisEngine.cpp, line 218.23: 1540-1213 (S) The temporary for the
throw expression is of type "axiscpp::AxisGenException" and cannot be
initialized with an expression of type "axiscpp::AxisGenException"
On Linux I get this error out of the same code.....
ClientAxisEngine.cpp: In member function `virtual int
axiscpp::ClientAxisEngine::process(axiscpp::SOAPTransport*)':
ClientAxisEngine.cpp:218: no matching function for call to
`axiscpp::AxisGenException::AxisGenException(axiscpp::AxisGenException)'
AxisGenException.h:45: candidates are:
axiscpp::AxisGenException::AxisGenException(axiscpp::AxisGenException&)
There are lots of other places where this same compile error occurs. I
guess the problem is that it can't implicitly cast a AxisGenException to
a
AxisGenException&. But I don't really understand why not. However I have
discovered that I can make it compile by changing it to the
following.....
AxisGenException age(e.getExceptionCode(), const_cast<char*>(e.what()));
throw age;
I'm not sure whether this is a good fix. I guess a better fix would be
to
put the proper constructors on AxisGenException (and others). Do you
know
why it can't cast a temporary to a reference? If you can fix this
properly,
please go ahead,
Thanks,
Mark
Mark Whitlock
IBM