summaryrefslogtreecommitdiff
path: root/cpp/src/slice2java/Gen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2java/Gen.cpp')
-rw-r--r--cpp/src/slice2java/Gen.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 28a361c6a95..0e8418cf660 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -3127,8 +3127,6 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
out << nl << "public void" << nl << op->name() << "_async" << spar << paramsAMI << "java.util.Map __ctx"
<< epar;
out << sb;
- // Async requests may only be sent twoway.
- out << nl << "__checkTwowayOnly(\"" << p->name() << "\");";
out << nl << "__cb.__invoke" << spar << "this" << argsAMI << "__ctx" << epar << ';';
out << eb;
}
@@ -4553,6 +4551,13 @@ Slice::Gen::AsyncVisitor::visitOperation(const OperationPtr& p)
out << nl << "try";
out << sb;
out << nl << "__prepare(__prx, \"" << p->name() << "\", " << sliceModeToIceMode(p) << ", __ctx);";
+ if(p->returnsData())
+ {
+ out << nl << "if(!__prx.ice_isTwoway())";
+ out << sb;
+ out << nl << "throw new Ice.TwowayOnlyException(\"" << p->name() << "\");";
+ out << eb;
+ }
iter = 0;
for(pli = inParams.begin(); pli != inParams.end(); ++pli)
{