Absent option java_outer_classname, protoc generates an outer java class for each .proto file with a name derived from the .proto file name.
If no explicit java_outer_classname is specified in the .proto file, the class name will be constructed by converting the .proto file name to camel-case (so foo_bar.proto becomes FooBar.java)
Protoc generates an inner class for each message type in the proto with a name that matches the message type name.
In the event of a name conflict between the outer and inner type names, protoc adds an OuterClass suffix to the outer type's name.
JProtoc is not correctly accounting for the name collision between the outer and inner class name.
option java_outer_classname
, protoc generates an outer java class for each .proto file with a name derived from the .proto file name.foo_bar.proto
becomesFooBar.java
)message
type in the proto with a name that matches themessage
type name.OuterClass
suffix to the outer type's name.JProtoc is not correctly accounting for the name collision between the outer and inner class name.
https://github.com/salesforce/grpc-java-contrib/blob/347c90bf677996d174f2168c1179d3bf9ce23219/jprotoc/src/main/java/com/salesforce/jprotoc/ProtoTypeMap.java#L109-L113