[ 
https://issues.apache.org/jira/browse/CAMEL-24301?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-24301:
--------------------------------
    Fix Version/s: 4.22.0

>  RouteService NPE when startup-failure exception has no message
> ---------------------------------------------------------------
>
>                 Key: CAMEL-24301
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24301
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-base-engine, camel-core
>            Reporter: Prasanth Ganesh Rao
>            Priority: Minor
>             Fix For: 4.22.0
>
>         Attachments: stacktrace_Null.txt
>
>
>   When a route fails to start and the root cause exception carries no message 
> (e.g. bare NullPointerException, StackOverflowError, or a wrapped 
> WSDLException with no text), RouteService.warmUp() and setUp() pass 
> e.getLocalizedMessage() directly to FailedToStartRouteException. That 
> constructor calls Objects.requireNonNull on the message argument, so a 
> secondary NPE is thrown from inside FailedToStartRouteException
>   instead of the intended exception.
>   
>   In Camel 3.14.x this manifested as "Failed to start route X because of 
> null"; the 4.x code fixed that regression but left this adjacent null-safety 
> gap.
>   
>   *Fix (PR #25205):*
>   A private extractUsefulMessage(Throwable) helper is added to RouteService 
> that walks the cause chain for the first non-null, non-blank message and 
> falls back to the exception's simple class name. Both warmUp() and setUp() 
> now call this helper instead of getLocalizedMessage() directly.
>   
>   *Files changed:*
>   - 
> core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/RouteService.java
>   - 
> core/camel-core/src/test/java/org/apache/camel/impl/engine/RouteServiceWarmUpNullMessageTest.java
>  (new)
>   
>   PR: https://github.com/apache/camel/pull/25205



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to