Skip to content

Commit a52f9ab

Browse files
committed
CR
1 parent 353295b commit a52f9ab

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

core/src/main/java/io/grpc/internal/CloseWithHeadersMarker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* Marker to be used in {@link Status#withCause(Throwable)} to signal that stream should be closed
2323
* by sending headers.
2424
*/
25-
public class CloseWithHeadersMarker extends RuntimeException {
25+
public class CloseWithHeadersMarker extends Throwable {
2626
private static final long serialVersionUID = 0L;
2727

2828
@Override

core/src/main/java/io/grpc/internal/ServerCallImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,12 @@ private void handleInternalError(Throwable internalError) {
279279
serverCallTracer.reportCallEnded(false); // error so always false
280280
}
281281

282+
/**
283+
* Close the {@link ServerStream} because parsing request message failed.
284+
* Similar to {@link #handleInternalError(Throwable)}.
285+
*/
282286
private void handleParseError(StatusRuntimeException parseError) {
287+
cancelled = true;
283288
log.log(Level.WARNING, "Cancelling the stream because of parse error", parseError);
284289
stream.cancel(parseError.getStatus().withCause(new CloseWithHeadersMarker()));
285290
serverCallTracer.reportCallEnded(false); // error so always false
@@ -342,7 +347,6 @@ private void messagesAvailableInternal(final MessageProducer producer) {
342347
} catch (StatusRuntimeException e) {
343348
GrpcUtil.closeQuietly(message);
344349
GrpcUtil.closeQuietly(producer);
345-
call.cancelled = true;
346350
call.handleParseError(e);
347351
return;
348352
}

0 commit comments

Comments
 (0)