[ 
https://issues.apache.org/jira/browse/CAMEL-21979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17945340#comment-17945340
 ] 

Thomas Diesler edited comment on CAMEL-21979 at 4/17/25 11:20 AM:
------------------------------------------------------------------

This seems to be a tricky combination of custom camel + sb resource loading, 
also not particularly caused by camel k8s. Without the added complexity of 
container runtime, you can reproduce this like ...

{code} 
cd camel-cloud-examples/tree/main/spring-boot/timer-log
make k8s-package
java -jar target/timer-log-1.0.0.jar
...
Caused by: java.io.IOException: No input stream for: 
nested:/Users/tdiesler/git/camel-cloud-examples/spring-boot/timer-log/target/timer-log-1.0.0.jar/!BOOT-INF/classes/!/camel/timer-log-route.yaml
        at 
org.apache.camel.dsl.support.DefaultSourceLoader.loadResource(DefaultSourceLoader.java:36)
 ~[camel-dsl-support-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
        at 
org.apache.camel.dsl.support.RouteBuilderLoaderSupport.resourceInputStream(RouteBuilderLoaderSupport.java:166)
 ~[camel-dsl-support-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
        at 
org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader.preParseRoute(YamlRoutesBuilderLoader.java:619)
 ~[camel-yaml-dsl-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
        at 
org.apache.camel.impl.engine.DefaultRoutesLoader.findRoutesBuilders(DefaultRoutesLoader.java:162)
 ~[camel-base-engine-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
        at 
org.apache.camel.main.DefaultRoutesCollector.doCollectRoutesFromDirectory(DefaultRoutesCollector.java:203)
 ~[camel-main-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
{code}

I tried replacing 'timer-log-1.0.0.jar/!BOOT-INF/classes/!/' with 
'timer-log-1.0.0.jar/!BOOT-INF/classes/camel/', but spring-boot did complain 
about not finding '!/'
This is recent regression.


was (Author: tdiesler):
This seems to be a tricky combination of custom camel + sb resource loading, 
also not particularly caused by camel k8s. Without the added complexity of 
container runtime, you can reproduce this like ...

{code} 
cd camel-cloud-examples/tree/main/spring-boot/timer-log
make k8s-package
java -jar target/timer-log-1.0.0.jar
...
Caused by: java.io.IOException: No input stream for: 
nested:/Users/tdiesler/git/camel-cloud-examples/spring-boot/timer-log/target/timer-log-1.0.0.jar/!BOOT-INF/classes/!/camel/timer-log-route.yaml
        at 
org.apache.camel.dsl.support.DefaultSourceLoader.loadResource(DefaultSourceLoader.java:36)
 ~[camel-dsl-support-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
        at 
org.apache.camel.dsl.support.RouteBuilderLoaderSupport.resourceInputStream(RouteBuilderLoaderSupport.java:166)
 ~[camel-dsl-support-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
        at 
org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader.preParseRoute(YamlRoutesBuilderLoader.java:619)
 ~[camel-yaml-dsl-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
        at 
org.apache.camel.impl.engine.DefaultRoutesLoader.findRoutesBuilders(DefaultRoutesLoader.java:162)
 ~[camel-base-engine-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
        at 
org.apache.camel.main.DefaultRoutesCollector.doCollectRoutesFromDirectory(DefaultRoutesCollector.java:203)
 ~[camel-main-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
{code}

I tried replacing `timer-log-1.0.0.jar/!BOOT-INF/classes/!/` with 
`timer-log-1.0.0.jar/!BOOT-INF/classes/camel/`, but spring-boot did complain 
about not finding `!/`
This is recent regression.

> camel-core - NPE in DefaultSourceLoader
> ---------------------------------------
>
>                 Key: CAMEL-21979
>                 URL: https://issues.apache.org/jira/browse/CAMEL-21979
>             Project: Camel
>          Issue Type: Bug
>          Components: came-core
>            Reporter: Thomas Diesler
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 4.12.0
>
>
> {code}
> Caused by: java.lang.NullPointerException: null
>       at java.base/java.io.Reader.<init>(Reader.java:168) ~[na:na]
>       at 
> java.base/java.io.InputStreamReader.<init>(InputStreamReader.java:76) ~[na:na]
>       at 
> org.apache.camel.dsl.support.DefaultSourceLoader.loadResource(DefaultSourceLoader.java:37)
>  ~[camel-dsl-support-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
>       at 
> org.apache.camel.dsl.support.RouteBuilderLoaderSupport.resourceInputStream(RouteBuilderLoaderSupport.java:166)
>  ~[camel-dsl-support-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
>       at 
> org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader.preParseRoute(YamlRoutesBuilderLoader.java:619)
>  ~[camel-yaml-dsl-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.DefaultRoutesLoader.findRoutesBuilders(DefaultRoutesLoader.java:162)
>  ~[camel-base-engine-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
>       at 
> org.apache.camel.main.DefaultRoutesCollector.doCollectRoutesFromDirectory(DefaultRoutesCollector.java:203)
>  ~[camel-main-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
>       at 
> org.apache.camel.main.DefaultRoutesCollector.collectRoutesFromDirectory(DefaultRoutesCollector.java:177)
>  ~[camel-main-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
>       at 
> org.apache.camel.main.RoutesConfigurer.configureRoutes(RoutesConfigurer.java:258)
>  ~[camel-main-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
>       at 
> org.apache.camel.spring.boot.CamelSpringBootApplicationListener.onApplicationEvent(CamelSpringBootApplicationListener.java:105)
>  ~[camel-spring-boot-4.12.0-SNAPSHOT.jar!/:4.12.0-SNAPSHOT]
> {code}
> happens with 
> {code}
> k8s-export:
>       @$(CAMEL_CMD) kubernetes export platform-http-files/* \
>       --gav=examples:platform-http:1.0.0 \
>       --trait ingress.enabled=true \
>       --trait ingress.host=example.local \
>       --trait ingress.ingressClass=traefik \
>       --trait ingress.tls-secret-name=traefik-tls \
>       --image-builder=docker \
>       --image-push=false \
>       --runtime=spring-boot
> {code}



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

Reply via email to