summaryrefslogtreecommitdiff
path: root/java/test/Ice/interceptor/InterceptorI.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/test/Ice/interceptor/InterceptorI.java')
-rw-r--r--java/test/Ice/interceptor/InterceptorI.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/java/test/Ice/interceptor/InterceptorI.java b/java/test/Ice/interceptor/InterceptorI.java
new file mode 100644
index 00000000000..5f16891715f
--- /dev/null
+++ b/java/test/Ice/interceptor/InterceptorI.java
@@ -0,0 +1,79 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+class InterceptorI extends Ice.DispatchInterceptor
+{
+ InterceptorI(Ice.Object servant)
+ {
+ _servant = servant;
+ }
+
+ protected static void
+ test(boolean b)
+ {
+ if(!b)
+ {
+ throw new RuntimeException();
+ }
+ }
+
+
+ public IceInternal.DispatchStatus
+ dispatch(Ice.Request request)
+ {
+ Ice.Current current = request.getCurrent();
+ _lastOperation = current.operation;
+
+ if(_lastOperation.equals("addWithRetry"))
+ {
+ for(int i = 0; i < 10; ++i)
+ {
+ try
+ {
+ _servant.ice_dispatch(request, null);
+ test(false);
+ }
+ catch(Test.RetryException re)
+ {
+ //
+ // Expected, retry
+ //
+ }
+ }
+
+ request.getCurrent().ctx.put("retry", "no");
+ }
+
+ _lastStatus = _servant.ice_dispatch(request, null);
+ return _lastStatus;
+ }
+
+ IceInternal.DispatchStatus
+ getLastStatus()
+ {
+ return _lastStatus;
+ }
+
+ String
+ getLastOperation()
+ {
+ return _lastOperation;
+ }
+
+ void
+ clear()
+ {
+ _lastOperation = null;
+ _lastStatus = null;
+ }
+
+ protected final Ice.Object _servant;
+ protected String _lastOperation;
+ protected IceInternal.DispatchStatus _lastStatus;
+} \ No newline at end of file