You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2011/04/16 22:05:51 UTC
svn commit: r1094044 -
/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
Author: roger
Date: Sat Apr 16 20:05:51 2011
New Revision: 1094044
URL: http://svn.apache.org/viewvc?rev=1094044&view=rev
Log:
THRIFT-1146 add java:android_legacy option to the compiler
Issue: Android Incompatibility : in Android < 2.3 java.io.IOException doesn't support for Throwable parameter in constructor
Patch: Alessandro Rossi
Modified:
thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
Modified: thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
URL: http://svn.apache.org/viewvc/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc?rev=1094044&r1=1094043&r2=1094044&view=diff
==============================================================================
--- thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc (original)
+++ thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc Sat Apr 16 20:05:51 2011
@@ -59,6 +59,9 @@ class t_java_generator : public t_oop_ge
iter = parsed_options.find("hashcode");
gen_hash_code_ = (iter != parsed_options.end());
+ iter = parsed_options.find("android_legacy");
+ android_legacy_ = (iter != parsed_options.end());
+
out_dir_base_ = (bean_style_ ? "gen-javabean" : "gen-java");
}
@@ -258,6 +261,7 @@ class t_java_generator : public t_oop_ge
bool private_members_;
bool nocamel_style_;
bool gen_hash_code_;
+ bool android_legacy_;
};
@@ -3839,7 +3843,7 @@ void t_java_generator::generate_java_str
indent(out) << " try {" << endl;
indent(out) << " write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));" << endl;
indent(out) << " } catch (org.apache.thrift.TException te) {" << endl;
- indent(out) << " throw new java.io.IOException(te);" << endl;
+ indent(out) << " throw new java.io.IOException(te" << (android_legacy_? ".getMessage()" : "") << ");" << endl;
indent(out) << " }" << endl;
indent(out) << "}" << endl << endl;
}
@@ -3854,7 +3858,7 @@ void t_java_generator::generate_java_str
}
indent(out) << " read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));" << endl;
indent(out) << " } catch (org.apache.thrift.TException te) {" << endl;
- indent(out) << " throw new java.io.IOException(te);" << endl;
+ indent(out) << " throw new java.io.IOException(te" << (android_legacy_? ".getMessage()" : "") << ");" << endl;
indent(out) << " }" << endl;
indent(out) << "}" << endl << endl;
}
@@ -3864,5 +3868,6 @@ THRIFT_REGISTER_GENERATOR(java, "Java",
" private-members: Members will be private, but setter methods will return 'this' like usual.\n"
" nocamel: Do not use CamelCase field accessors with beans.\n"
" hashcode: Generate quality hashCode methods.\n"
+" android_legacy: Do not use java.io.IOException(throwable) (available for Android 2.3 and above).\n"
)