From c5706dc35fe12e65461a8d1f1e2a2ef6f4833ddc Mon Sep 17 00:00:00 2001 From: dsavvinov Date: Mon, 8 Aug 2016 15:46:24 +0300 Subject: [PATCH] Protobuf: changed all exceptions in generated code into error codes. See description of particular codes in "error_codes" --- .../protobuf/compiler/kotlin/error_codes | 3 +++ .../google/protobuf/compiler/kotlin/protoc | Bin 114448 -> 114448 bytes .../kotlin/src/kotlin_class_generator.cc | 25 +++++++++--------- .../kotlin/src/kotlin_enum_generator.cc | 15 +++++------ .../kotlin/src/kotlin_field_generator.cc | 5 +--- 5 files changed, 22 insertions(+), 26 deletions(-) create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/error_codes diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/error_codes b/proto/compiler/google/src/google/protobuf/compiler/kotlin/error_codes new file mode 100644 index 00000000000..b9e207e6a65 --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/error_codes @@ -0,0 +1,3 @@ +1 - mismatch of expected and actual WireType in parseFieldFrom method +2 - read message of size that exceeds expected in parseFromWithSize method +3 - read message of size that is not equal to expected. Can occur when deserializing nested message (code generated in C++ method generateSerializationMethods) diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/protoc b/proto/compiler/google/src/google/protobuf/compiler/kotlin/protoc index 6083f21eb90e3ee45a89cad1b5441a30adef8669..9eddc2bcaea60bf353d715cc9200ae0d9ac74cd8 100755 GIT binary patch delta 16167 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 delta 16208 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 - /** - * Field generator should know if it is generating code for builder. - * or for fair class to choose between 'val' and 'var'. - * Also note that fields should be declared before init section. - */ + /* + * Field generator should know if it is generating code for builder + * or for fair class to choose between 'val' and 'var'. + * Also note that fields should be declared before init section. + */ + for (FieldGenerator *gen: properties) { gen->generateCode(printer, isBuilder); printer->Print("\n"); } + // Generate field for errors code + printer->Print("\n"); + printer->Print("var errorCode: Int = 0\n"); + printer->Print("\n"); generateInitSection(printer); @@ -298,13 +303,7 @@ void ClassGenerator::generateParseMethods(io::Printer *printer) const { printer->Indent(); // check that wire type of that field is equal to expected - printer->Print(vars, "if (wireType != $kotlinWireType$) {\n"); - printer->Indent(); - printer->Print(vars, "throw InvalidProtocolBufferException(\"" - "Error: Field number $fieldNumber$ has wire type $kotlinWireType$" - " but read $dl${wireType.toString()}\")"); - printer->Outdent(); - printer->Print("}\n"); + printer->Print(vars, "if (wireType != $kotlinWireType$) { errorCode = 1; return false } \n"); properties[i]->generateSerializationCode(printer, /* isRead = */ true, /* noTag = */ true); @@ -340,7 +339,7 @@ void ClassGenerator::generateParseMethods(io::Printer *printer) const { vars["dollar"] = "$"; printer->Print(vars, "if (getSizeNoTag() > expectedSize) { " - "throw InvalidProtocolBufferException(\"Error: expected size of message $dollar$expectedSize, but have read at least $dollar${getSizeNoTag()}\") " + "errorCode = 2 " "}\n"); printer->Print("return this\n"); diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_enum_generator.cc b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_enum_generator.cc index c49913bcaec..c4fff0c9166 100644 --- a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_enum_generator.cc +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_enum_generator.cc @@ -44,15 +44,14 @@ void EnumGenerator::generateCode(io::Printer * printer) const { // Generate enum values. for (int i = 0; i < enumValues.size(); ++i) { enumValues[i]->generateCode(printer); - if (i + 1 != enumValues.size()) { - printer->Print(","); - } - else { - printer->Print(";"); // semicolon is necessary as companion object will follow - } + printer->Print(","); printer->Print("\n"); } + // Generate additional value that will indicate errors in parsing this enum from int + vars["size"] = std::to_string(enumValues.size()); + printer->Print(vars, "Unexpected($size$);\n"); + printer->Print("\n"); generateEnumConverter(printer); @@ -86,9 +85,7 @@ void EnumGenerator::generateEnumConverter(io::Printer *printer) const { // catch cast errors in else-clause printer->Print(vars, - "else -> throw InvalidProtocolBufferException(" - "\"Error: got unexpected int $dollar${ord} while parsing $type$ \"" - ");\n"); + "else -> Unexpected\n"); printer->Outdent(); // when-clause printer->Print("}\n"); diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_field_generator.cc b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_field_generator.cc index 8cb441f4bdc..7f32470b660 100644 --- a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_field_generator.cc +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_field_generator.cc @@ -257,10 +257,7 @@ void FieldGenerator::generateSerializationForMessages(io::Printer * printer, boo "$fieldName$.mergeFromWithSize(input, expectedSize)\n"); // check that actual size equal to expected size - printer->Print(vars, "if (expectedSize != $fieldName$.getSizeNoTag()) { " - "throw InvalidProtocolBufferException (" - "\"Expected size $dollar${expectedSize} got $dollar${$fieldName$.getSizeNoTag()}" - "\") }\n"); + printer->Print(vars, "if (expectedSize != $fieldName$.getSizeNoTag()) { errorCode = 3; return false }\n"); printer->Outdent(); printer->Print("}\n"); }