diff options
author | Marc Laukien <marc@zeroc.com> | 2004-10-28 22:28:09 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2004-10-28 22:28:09 +0000 |
commit | 4e7aee1d3649c4568c5ff45c58836fcbfe9a900c (patch) | |
tree | c058f44a0fba2689df54a7db04b7003a200ca46f /cpp/src | |
parent | Sequence code generation fixes. (diff) | |
download | ice-4e7aee1d3649c4568c5ff45c58836fcbfe9a900c.tar.bz2 ice-4e7aee1d3649c4568c5ff45c58836fcbfe9a900c.tar.xz ice-4e7aee1d3649c4568c5ff45c58836fcbfe9a900c.zip |
outgoing.abort
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/slice2java/Gen.cpp | 29 |
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();"; |