THRIFT-2227 Thrift compiler generates spurious warnings with Xlint

Patch: Andrew Gaul
diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc
index 9b48df0..e77202e 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -266,6 +266,7 @@
 
   std::string java_package();
   std::string java_type_imports();
+  std::string java_suppressions();
   std::string type_name(t_type* ttype, bool in_container=false, bool in_init=false, bool skip_generic=false);
   std::string base_type_name(t_base_type* tbase, bool in_container=false);
   std::string declare_field(t_field* tfield, bool init=false, bool comment=false);
@@ -403,6 +404,10 @@
     "import org.slf4j.LoggerFactory;\n\n";
 }
 
+string t_java_generator::java_suppressions() {
+  return "@SuppressWarnings({\"cast\", \"rawtypes\", \"serial\", \"unchecked\"})\n";
+}
+
 /**
  * Nothing in Java
  */
@@ -526,7 +531,8 @@
   f_consts <<
     autogen_comment() <<
     java_package() <<
-    java_type_imports();
+    java_type_imports() <<
+    java_suppressions();
 
   f_consts <<
     "public class " << make_valid_java_identifier(program_name_) << "Constants {" << endl <<
@@ -729,7 +735,8 @@
   f_struct <<
     autogen_comment() <<
     java_package() <<
-    java_type_imports();
+    java_type_imports() <<
+    java_suppressions();
 
   generate_java_struct_definition(f_struct,
                                   tstruct,
@@ -751,7 +758,8 @@
   f_struct <<
     autogen_comment() <<
     java_package() <<
-    java_type_imports();
+    java_type_imports() <<
+    java_suppressions();
 
   generate_java_doc(f_struct, tstruct);
 
@@ -2246,7 +2254,8 @@
   f_service_ <<
     autogen_comment() <<
     java_package() <<
-    java_type_imports();
+    java_type_imports() <<
+    java_suppressions();
 
   generate_javax_generated_annotation(f_service_);
   f_service_ << "public class " << service_name_ << " {" << endl << endl;