summaryrefslogtreecommitdiff
path: root/cpp/test/Ice/interceptor/InterceptorI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/Ice/interceptor/InterceptorI.cpp')
-rw-r--r--cpp/test/Ice/interceptor/InterceptorI.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/cpp/test/Ice/interceptor/InterceptorI.cpp b/cpp/test/Ice/interceptor/InterceptorI.cpp
index 04b60f7a8f6..171aaf0c25a 100644
--- a/cpp/test/Ice/interceptor/InterceptorI.cpp
+++ b/cpp/test/Ice/interceptor/InterceptorI.cpp
@@ -3,7 +3,7 @@
//
#include <InterceptorI.h>
-#include <Test.h>
+#include <MyObjectI.h>
#include <TestHelper.h>
using namespace std;
@@ -18,6 +18,24 @@ bool
InterceptorI::dispatch(Ice::Request& request)
{
Ice::Current& current = const_cast<Ice::Current&>(request.getCurrent());
+
+ Ice::Context::const_iterator p = current.ctx.find("raiseBeforeDispatch");
+ if(p != current.ctx.end())
+ {
+ if(p->second == "user")
+ {
+ throw Test::InvalidInputException();
+ }
+ else if(p->second == "notExist")
+ {
+ throw Ice::ObjectNotExistException(__FILE__, __LINE__);
+ }
+ else if(p->second == "system")
+ {
+ throw MySystemException(__FILE__, __LINE__);
+ }
+ }
+
_lastOperation = current.operation;
if(_lastOperation == "addWithRetry")
@@ -39,7 +57,26 @@ InterceptorI::dispatch(Ice::Request& request)
current.ctx["retry"] = "no";
}
+
_lastStatus = _servant->ice_dispatch(request);
+
+ p = current.ctx.find("raiseAfterDispatch");
+ if(p != current.ctx.end())
+ {
+ if(p->second == "user")
+ {
+ throw Test::InvalidInputException();
+ }
+ else if(p->second == "notExist")
+ {
+ throw Ice::ObjectNotExistException(__FILE__, __LINE__);
+ }
+ else if(p->second == "system")
+ {
+ throw MySystemException(__FILE__, __LINE__);
+ }
+ }
+
return _lastStatus;
}