-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Closed as not planned
Description
Generator version: 1.52.1
Generate command:
cd .gradle
wget https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/1.52.1/protoc-gen-grpc-java-1.52.1-osx-x86_64.exe
chmod 777 protoc-gen-grpc-java-1.52.1-osx-x86_64.exe
cd ..
mkdir -p app/src/main/java/generated_grpc
protoc --experimental_allow_proto3_optional --plugin=protoc-gen-grpc-java=.gradle/protoc-gen-grpc-java-1.52.1-osx-x86_64.exe \
--java_out=app/src/main/java --grpc-java_out=app/src/main/java \
--proto_path=../party_protocols/protocols free_map_service.proto
Protocols
syntax = "proto3";
package free_map_service;
option go_package = "./free_map_service";
option java_package = "generated_grpc.free_map_service_grpc";
option java_outer_classname = "free_map_service_grpc_types";
service FreeMapService {
rpc DeletePlace(DeleteRequest) returns (DeleteResponse);
}
message DeleteRequest {
int32 location_id = 1;
}
message DeleteResponse {
optional string error = 1;
bool success = 2;
}
Kotlin code
override fun deletePlace(
request: DeleteRequest?,
responseObserver: StreamObserver<DeleteResponse?>?
) {
responseObserver?.onNext(DeleteResponse.newBuilder()
.setError(null).setSuccess(true)
.build())
responseObserver?.onCompleted()
}
Error
As I tested out, if I use setError("")
, there would have no error.
But if I use setError(null)
, error happens.
I also tested
--experimental_allow_proto3_optional
, not working.
Feb 02, 2023 11:11:50 AM io.grpc.internal.SerializingExecutor run
SEVERE: Exception while executing runnable io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed@587ff7a5
java.lang.NullPointerException
at generated_grpc.free_map_service_grpc.free_map_service_grpc_types$DeleteResponse$Builder.setError(free_map_service_grpc_types.java:5740)
at kotlin_free_map_backend_system.FreeMapService.deletePlace(FreeMapService.kt:32)
at generated_grpc.free_map_service_grpc.FreeMapServiceGrpc$MethodHandlers.invoke(FreeMapServiceGrpc.java:351)
at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182)
at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:340)
at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:866)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Metadata
Metadata
Assignees
Labels
No labels