[
https://issues.apache.org/jira/browse/CAMEL-25831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18128853#comment-18128853
]
Claus Ibsen commented on CAMEL-25831:
-------------------------------------
Merged to main via https://github.com/apache/camel/pull/28119 (af32e288b81c).
_Claude Code on behalf of Claus Ibsen_
> camel-core - dev mode: after the Java source of a bean is deleted, every
> reload fails with FileNotFoundException
> ----------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25831
> URL: https://issues.apache.org/jira/browse/CAMEL-25831
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Reporter: Claus Ibsen
> Priority: Major
> Fix For: 4.24.0
>
>
> In dev mode ({{camel run --dev}}, or {{camel.main.routesReloadEnabled}}), a
> reload whose files include a Java source also loads the files that declare
> beans again, so their beans are created again
> ({{RouteWatcherReloadStrategy}}, the bean resources from the model). The file
> of a bean that was deleted stays among them. So once the Java source of a
> bean is deleted, the next reload fails:
> {noformat}
> Error reloading routes from file: ... due to: java.io.FileNotFoundException:
> src/main/java/camel/example/Greeter.java does not exist
> at
> org.apache.camel.support.RouteWatcherReloadStrategy.onRouteReload(RouteWatcherReloadStrategy.java:600)
> {noformat}
> The strategy restores the routes that ran, and takes the files of the failed
> reload into the next one, so every later reload fails as well, also the
> reload of a changed YAML route. The app keeps the routes it had.
> Reproduced with {{camel run --source-dir=. --dev}}: a YAML route calls the
> class {{camel.example.Greeter}} with {{$\{bean:...\}}}, from
> {{src/main/java/camel/example/Greeter.java}}. Delete that file and write the
> class as {{Greeter.java}} in the project folder: the reload fails, and a
> change of the route does not reload either.
> Found in a benchmark of Oct 18-19 2026: the harness moved {{Order.java}} like
> that between two steps, and the next change of the model failed to reload.
> The strategy skips the file of a route that is gone ({{isDeletedFile}}), but
> not the files of the beans, nor the files in {{RouteWatcherReloadResources}}
> from the registry.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)