summaryrefslogtreecommitdiff
path: root/java/src/Ice/ObjectImpl.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2006-07-27 02:20:24 +0000
committerBernard Normier <bernard@zeroc.com>2006-07-27 02:20:24 +0000
commit8aac48087f21293db3e29b6dd7018bc870200980 (patch)
tree3e179873f417258ecedb4681d1191a63d1430a3c /java/src/Ice/ObjectImpl.java
parentPartial fix for bug #1257: deprecating nonmutating (diff)
downloadice-8aac48087f21293db3e29b6dd7018bc870200980.tar.bz2
ice-8aac48087f21293db3e29b6dd7018bc870200980.tar.xz
ice-8aac48087f21293db3e29b6dd7018bc870200980.zip
Improved __checkMode
Diffstat (limited to 'java/src/Ice/ObjectImpl.java')
-rw-r--r--java/src/Ice/ObjectImpl.java21
1 files changed, 16 insertions, 5 deletions
diff --git a/java/src/Ice/ObjectImpl.java b/java/src/Ice/ObjectImpl.java
index ccf13feb362..854f4d5f4b8 100644
--- a/java/src/Ice/ObjectImpl.java
+++ b/java/src/Ice/ObjectImpl.java
@@ -271,11 +271,22 @@ public abstract class ObjectImpl implements Object, java.lang.Cloneable
{
if(expected != received)
{
- Ice.MarshalException ex = new Ice.MarshalException();
- ex.reason = "unexpected operation mode. expected = "
- + operationModeToString(expected) + " received = "
- + operationModeToString(received);
- throw ex;
+ if(expected == Ice.OperationMode.Idempotent
+ && received == Ice.OperationMode.Nonmutating)
+ {
+ //
+ // Fine: typically an old client still using the
+ // deprecated nonmutating keyword
+ //
+ }
+ else
+ {
+ Ice.MarshalException ex = new Ice.MarshalException();
+ ex.reason = "unexpected operation mode. expected = "
+ + operationModeToString(expected) + " received = "
+ + operationModeToString(received);
+ throw ex;
+ }
}
}
}