I was having some problems whenever Axis threw an exception. The problem would
corrupt the stack so that VC++ couldn't tell what or where the crash occured.
I did find that there were some exceptions that may be at fault (according to
our c++ gurus). It boils down to the fact that exceptions must have a copy
constructor that allows for a deep copy of the data.
Before I filed a Jira, I wanted someone with a bit more experience to say,
"yah, that could be a problem". I have a patch, that seems to help.
Here's the code I came up with:
Index: c/src/common/AxisGenException.h
===================================================================
--- c/src/common/AxisGenException.h (revision 510578)
+++ c/src/common/AxisGenException.h (working copy)
@@ -38,6 +38,11 @@
}
AxisGenException(const AxisException& e): AxisException (e) { }
virtual ~AxisGenException() throw() { }
+
+ AxisGenException(const AxisGenException &that)
+ {
+ this->setMessage(that.m_iExceptionCode, that.m_sMessage.c_str());
+ }
};
AXIS_CPP_NAMESPACE_END
Index: c/src/transport/axis3/HTTPTransportException.hpp
===================================================================
--- c/src/transport/axis3/HTTPTransportException.hpp (revision 510578)
+++ c/src/transport/axis3/HTTPTransportException.hpp (working copy)
@@ -40,6 +40,11 @@
// constructor
HTTPTransportException(const AxisException& e): AxisException (e) { }
+ HTTPTransportException(const HTTPTransportException &that)
+ {
+ this->setMessage(that.m_iExceptionCode, that.m_sMessage.c_str());
+ }
+
// destructor
virtual ~HTTPTransportException() throw() { }
};
---
Wayne Johnson, | There are two kinds of people: Those
3943 Penn Ave. N. | who say to God, "Thy will be done,"
Minneapolis, MN 55412-1908 | and those to whom God says, "All right,
(612) 522-7003 | then, have it your way." --C.S. Lewis
---------------------------------
Bored stiff? Loosen up...
Download and play hundreds of games for free on Yahoo! Games.