oscerd opened a new pull request, #25839:
URL: https://github.com/apache/camel/pull/25839

   Fixes [CAMEL-24478](https://issues.apache.org/jira/browse/CAMEL-24478).
   
   ## The gRPC consumer returns the route exception to the client
   
   `GrpcMethodHandler` builds the error status from the route's exception:
   
   ```java
   responseObserver.onError(Status.INTERNAL
           .withDescription(exchange.getException().getMessage())
           // This can be attached to the Status locally, but NOT transmitted 
to the client!
           .withCause(exchange.getException())
           .asRuntimeException());
   ```
   
   The existing comment is the tell: the **cause** stays local, but the 
**description is transmitted**. So
   any remote-triggerable route failure hands the caller the exception's 
message.
   
   [CAMEL-23651](https://issues.apache.org/jira/browse/CAMEL-23651) aligned the 
HTTP consumers on a
   `muteException` option defaulting to `true`. camel-grpc had none — the last 
of the four consumers in
   that family.
   
   ## The change
   
   `muteException` on `GrpcConfiguration`, consumer scope, default `true`. Only 
the description is replaced,
   with `Exchange processing failed`; the `Status.INTERNAL` code and the 
locally-attached cause are unchanged.
   
   `GrpcRequestPropagationStreamObserver.onError` is **deliberately untouched** 
— it forwards a `Throwable`
   the client itself sent upstream, not route internals.
   
   ## Testing
   
   Two tests added to the existing `GrpcConsumerExceptionTest`: the status 
description no longer carries the
   route exception by default, and `muteException=false` restores it. The 
unmuted case runs against a second
   route on its own port.
   
   **Note on an unrelated failure:** `testExchangeExceptionHandling` in that 
class fails, and it fails on
   `main` without this change too — I verified by reverting the main-code 
change entirely and re-running.
   It is pre-existing and not caused by this PR, but worth someone looking at.
   
   `camel-grpc` builds clean and a full `mvn clean install -DskipTests` is 
green across 693 modules. The
   catalog diff is a pure re-index plus the one new option — no option was 
removed.
   
   ## Family
   
   Completes the muteException set: CAMEL-24428 knative (merged), CAMEL-24476 
mina (#25741),
   CAMEL-24477 cxf (#25742), and this one.
   
   _Claude Code on behalf of oscerd_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to