[ https://issues.apache.org/jira/browse/CAMEL-14299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17002000#comment-17002000 ]
Jan Bednar commented on CAMEL-14299: ------------------------------------ I can reproduce this with your code. The datasource is auto configured with spring boot. During this initialization there are some calls to openConnection, which causes HikariConfig to seal. Then comes in place Camel Introspection trying to set DataSource to HikariConfig object, which is already sealed and cannot be modified. Until we find solution, you can use one of these workarounds: Replace *toD* with *to* and *CamelSqlQuery* header {code:java} .setHeader("insertSql", constant("insert into tmp (col1, col2) values (:?val1, :?val2)")) //Notice ? instead of # .setHeader("CamelSqlQuery", header("insertSql")) .to("sql:insert?dataSource=#dataSource") {code} OR downgrade hikari in your pom to lower version , where sealing mechanism was not implemented {code:java} <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>2.7.4</version> </dependency> {code} > camel-sql - Dynamic producer (toD) problem > ------------------------------------------ > > Key: CAMEL-14299 > URL: https://issues.apache.org/jira/browse/CAMEL-14299 > Project: Camel > Issue Type: Bug > Components: camel-sql > Affects Versions: 3.0.0 > Reporter: Gurpal2000 > Priority: Minor > Fix For: 3.0.1, 3.1.0 > > Attachments: log.txt > > > Spring Boot: 2.2.1 > Camel: 3.0.0 > *Works* using "to()" > > {code:java} > from("file://d:/tmp/?fileName=test&noop=true") > .setHeader("val1", constant(1)) > .setHeader("val2", constant("yo")) > .to("sql:insert into gbtemp (col1, col2) values (:#val1, > :#val2)?dataSource=#dataSource"); > {code} > Does *not work* using ".toD()" > {code:java} > from("file://d:/tmp/?fileName=test&noop=true") > .setHeader("val1", constant(1)) > .setHeader("val2", constant("yo")) > .setHeader("insertSql", constant("insert into gbtemp (col1, col2) values > (:#val1, :#val2)")) > .toD("sql:${header.insertSql}?dataSource=#dataSource"); > {code} > This used to work fine under Camel 2.x > Example error lines: > {code:java} > Caused by: org.apache.camel.RuntimeCamelException: Cannot auto create > component: sql > Caused by: org.apache.camel.PropertyBindingException: Error binding > properties on bean: org.apache.camel.component.sql.SqlComponent@a72b3b2 > org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: > sql://insert... > {code} > -- This message was sent by Atlassian Jira (v8.3.4#803005)