diff options
author | Bernard Normier <bernard@zeroc.com> | 2006-07-27 02:20:24 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2006-07-27 02:20:24 +0000 |
commit | 8aac48087f21293db3e29b6dd7018bc870200980 (patch) | |
tree | 3e179873f417258ecedb4681d1191a63d1430a3c /java/src/Ice/ObjectImpl.java | |
parent | Partial fix for bug #1257: deprecating nonmutating (diff) | |
download | ice-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.java | 21 |
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; + } } } } |