summaryrefslogtreecommitdiff
path: root/cpp/src/slice2java/Gen.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2003-09-25 16:11:44 +0000
committerMark Spruiell <mes@zeroc.com>2003-09-25 16:11:44 +0000
commit5949fba4e8a300fcfd4bdc10eb69af171fdb7bed (patch)
tree6d550718ef707e68090ea1a68c4c98b8cc3db6b3 /cpp/src/slice2java/Gen.cpp
parentImproved Evictor locking (diff)
downloadice-5949fba4e8a300fcfd4bdc10eb69af171fdb7bed.tar.bz2
ice-5949fba4e8a300fcfd4bdc10eb69af171fdb7bed.tar.xz
ice-5949fba4e8a300fcfd4bdc10eb69af171fdb7bed.zip
respect at-most-once semantics for collocated invocations
Diffstat (limited to 'cpp/src/slice2java/Gen.cpp')
-rw-r--r--cpp/src/slice2java/Gen.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index c520e8eb214..cfb70dd5c8f 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -3324,6 +3324,8 @@ Slice::Gen::DelegateDVisitor::visitClassDefStart(const ClassDefPtr& p)
out << nl << "__opEx.operation = __current.operation;";
out << nl << "throw __opEx;";
out << eb;
+ out << nl << "try";
+ out << sb;
out << nl;
if(ret)
{
@@ -3339,6 +3341,11 @@ Slice::Gen::DelegateDVisitor::visitClassDefStart(const ClassDefPtr& p)
{
out << nl << "return;";
}
+ out << eb;
+ out << nl << "catch(Ice.LocalException __ex)";
+ out << sb;
+ out << nl << "throw new IceInternal.NonRepeatable(__ex);";
+ out << eb;
out << eb;
out << nl << "finally";
out << sb;