diff options
Diffstat (limited to 'cpp/src/slice2java/Gen.cpp')
-rw-r--r-- | cpp/src/slice2java/Gen.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp index b32e85a4e08..8aff75f3b49 100644 --- a/cpp/src/slice2java/Gen.cpp +++ b/cpp/src/slice2java/Gen.cpp @@ -2280,11 +2280,17 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p) out << eb; out << sp << nl << "public java.lang.Object" << nl << "clone()"; - out.inc(); - out << nl << "throws java.lang.CloneNotSupportedException"; - out.dec(); out << sb; - out << nl << "return super.clone();"; + out << nl << "java.lang.Object o = null;"; + out << nl << "try"; + out << sb; + out << nl << "o = super.clone();"; + out << eb; + out << nl << "catch(CloneNotSupportedException ex)"; + out << sb; + out << nl << "assert false; // impossible"; + out << eb; + out << nl << "return o;"; out << eb; if(!p->isLocal()) |