summaryrefslogtreecommitdiff
path: root/cpp/src/slice2java/Gen.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2004-10-28 22:28:09 +0000
committerMarc Laukien <marc@zeroc.com>2004-10-28 22:28:09 +0000
commit4e7aee1d3649c4568c5ff45c58836fcbfe9a900c (patch)
treec058f44a0fba2689df54a7db04b7003a200ca46f /cpp/src/slice2java/Gen.cpp
parentSequence code generation fixes. (diff)
downloadice-4e7aee1d3649c4568c5ff45c58836fcbfe9a900c.tar.bz2
ice-4e7aee1d3649c4568c5ff45c58836fcbfe9a900c.tar.xz
ice-4e7aee1d3649c4568c5ff45c58836fcbfe9a900c.zip
outgoing.abort
Diffstat (limited to 'cpp/src/slice2java/Gen.cpp')
-rw-r--r--cpp/src/slice2java/Gen.cpp29
1 files changed, 18 insertions, 11 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 338893b28a4..025b0a1a3c6 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -3896,19 +3896,26 @@ Slice::Gen::DelegateMVisitor::visitClassDefStart(const ClassDefPtr& p)
out << sb;
if(!inParams.empty())
{
+ out << nl << "try";
+ out << sb;
out << nl << "IceInternal.BasicStream __os = __out.os();";
- }
- iter = 0;
- for(pli = inParams.begin(); pli != inParams.end(); ++pli)
- {
- writeMarshalUnmarshalCode(out, package, (*pli)->type(), fixKwd((*pli)->name()), true, iter, false,
- (*pli)->getMetaData());
- }
- if(op->sendsClasses())
- {
- out << nl << "__os.writePendingObjects();";
+ iter = 0;
+ for(pli = inParams.begin(); pli != inParams.end(); ++pli)
+ {
+ writeMarshalUnmarshalCode(out, package, (*pli)->type(), fixKwd((*pli)->name()), true, iter, false,
+ (*pli)->getMetaData());
+ }
+ if(op->sendsClasses())
+ {
+ out << nl << "__os.writePendingObjects();";
+ }
+ out << eb;
+ out << nl << "catch(Ice.LocalException __ex)";
+ out << sb;
+ out << nl << "__out.abort(__ex);";
+ out << eb;
}
- out << nl << "boolean __ok = __out.invoke();";
+ out << nl << "boolean __ok = __out.invoke();";
out << nl << "try";
out << sb;
out << nl << "IceInternal.BasicStream __is = __out.is();";