summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2001-12-12 18:40:18 +0000
committerMark Spruiell <mes@zeroc.com>2001-12-12 18:40:18 +0000
commita9c7a106b031ffce3b6c428fdec872ef755c3152 (patch)
tree625f371c439ff6b1b764306def117b1acf54b4a0 /cpp
parentinitial check-in (diff)
downloadice-a9c7a106b031ffce3b6c428fdec872ef755c3152.tar.bz2
ice-a9c7a106b031ffce3b6c428fdec872ef755c3152.tar.xz
ice-a9c7a106b031ffce3b6c428fdec872ef755c3152.zip
fix for nonmutating ops
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/slice2java/Gen.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 3d46e6f2d64..f7128687ac4 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -1793,7 +1793,14 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
out << eb;
out << nl << "catch (IceInternal.NonRepeatable __ex)";
out << sb;
- out << nl << "__rethrowException(__ex.get());";
+ if (op->nonmutating())
+ {
+ out << nl << "__cnt = __handleException(__ex.get(), __cnt);";
+ }
+ else
+ {
+ out << nl << "__rethrowException(__ex.get());";
+ }
out << eb;
out << nl << "catch (Ice.LocalException __ex)";
out << sb;