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.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 0240d86d6ec..cdab743ae50 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -2269,7 +2269,9 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
out << eb;
out << nl << "catch (IceInternal.NonRepeatable __ex)";
out << sb;
- if (op->nonmutating())
+ list<string> metaData = op->getMetaData();
+ bool nonmutating = find(metaData.begin(), metaData.end(), "nonmutating") != metaData.end();
+ if (nonmutating)
{
out << nl << "__cnt = __handleException(__ex.get(), __cnt);";
}
@@ -3073,10 +3075,10 @@ Slice::Gen::DelegateMVisitor::visitClassDefStart(const ClassDefPtr& p)
out << "java.util.Map __context)";
writeDelegateThrowsClause(scope, throws);
out << sb;
- out << nl << "IceInternal.Outgoing __out = new "
- << "IceInternal.Outgoing(__connection, __reference, false, \""
- << op->name() << "\", " << (op->nonmutating() ? "true" : "false")
- << ", __context);";
+ list<string> metaData = op->getMetaData();
+ bool nonmutating = find(metaData.begin(), metaData.end(), "nonmutating") != metaData.end();
+ out << nl << "IceInternal.Outgoing __out = new IceInternal.Outgoing(__connection, __reference, false, \""
+ << op->name() << "\", " << (nonmutating ? "true" : "false") << ", __context);";
if (!inParams.empty())
{
out << nl << "IceInternal.BasicStream __os = __out.os();";