summaryrefslogtreecommitdiff
path: root/java/test/Ice/interceptor/InterceptorI.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2007-05-14 21:17:57 +0000
committerBernard Normier <bernard@zeroc.com>2007-05-14 21:17:57 +0000
commitfd470410eafeacaa25a675673ef05c5cb20db1ba (patch)
tree3d352ebd214909c4fa8a1536f26f918f6d48094e /java/test/Ice/interceptor/InterceptorI.java
parentBug 1998 (diff)
downloadice-fd470410eafeacaa25a675673ef05c5cb20db1ba.tar.bz2
ice-fd470410eafeacaa25a675673ef05c5cb20db1ba.tar.xz
ice-fd470410eafeacaa25a675673ef05c5cb20db1ba.zip
Java dispatch interceptor (see bug #2126)
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