question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Unable to use basic filter with collection (was: Inconsistent behavior with SQL connector and message split)

See original GitHub issue

This is a…


[ ] Feature request
[ ] Regression (a behavior that used to work and stopped working in a new release)
[X] Bug report  
[ ] Documentation issue or request

Description

I have following integration:

1. SQL - Periodic invocation - Select * from contact
2. AMQ - Publish messages to some queue

In this scenario, the list from SQL connector is automatically split into multiple messages for some reason even when I didn’t specify the split step. So when I have 2 contacts in the database, I receive 2 messages in the queue.

Now I want to add a basic filter to the integration - since the split magic is being done, I might not need the explicit “split” step, so I create:

1. SQL - Periodic invocation - Select * from contact
2. Basic filter - last_name contains something (now I know something is wrong because I don't have the autocomplete for the field)
3. AMQ - Publish messages to some queue

Obviously, the integration fails with:

org.apache.camel.spring.boot.CamelSpringBootInitializationException: java.lang.IllegalArgumentException: java.lang.IllegalStateException: No step properties defined for rule filter step
	at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:250) ~[camel-spring-boot-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:57) ~[camel-spring-boot-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-4.3.19.RELEASE.jar!/:4.3.19.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-4.3.19.RELEASE.jar!/:4.3.19.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-4.3.19.RELEASE.jar!/:4.3.19.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393) ~[spring-context-4.3.19.RELEASE.jar!/:4.3.19.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347) ~[spring-context-4.3.19.RELEASE.jar!/:4.3.19.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:883) ~[spring-context-4.3.19.RELEASE.jar!/:4.3.19.RELEASE]
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144) ~[spring-boot-1.5.16.RELEASE.jar!/:1.5.16.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-4.3.19.RELEASE.jar!/:4.3.19.RELEASE]
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.16.RELEASE.jar!/:1.5.16.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.16.RELEASE.jar!/:1.5.16.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.16.RELEASE.jar!/:1.5.16.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.16.RELEASE.jar!/:1.5.16.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.16.RELEASE.jar!/:1.5.16.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.16.RELEASE.jar!/:1.5.16.RELEASE]
	at io.syndesis.example.Application.main(Application.java:13) [classes!/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_191]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_191]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_191]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
	at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [project-0.1-SNAPSHOT.jar:na]
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [project-0.1-SNAPSHOT.jar:na]
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [project-0.1-SNAPSHOT.jar:na]
	at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:595) [project-0.1-SNAPSHOT.jar:na]
Caused by: java.lang.IllegalArgumentException: java.lang.IllegalStateException: No step properties defined for rule filter step
	at io.syndesis.integration.runtime.sb.IntegrationRuntimeAutoConfiguration$1.beforeApplicationStart(IntegrationRuntimeAutoConfiguration.java:94) ~[integration-runtime-springboot-1.6-SNAPSHOT.jar!/:1.6-SNAPSHOT]
	at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:152) ~[camel-spring-boot-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	... 24 common frames omitted
Caused by: java.lang.IllegalStateException: No step properties defined for rule filter step
	at io.syndesis.integration.runtime.handlers.RuleFilterStepHandler.getFilterExpression(RuleFilterStepHandler.java:51) ~[integration-runtime-1.6-SNAPSHOT.jar!/:1.6-SNAPSHOT]
	at io.syndesis.integration.runtime.handlers.AbstractFilterStepHandler.handle(AbstractFilterStepHandler.java:36) ~[integration-runtime-1.6-SNAPSHOT.jar!/:1.6-SNAPSHOT]
	at io.syndesis.integration.runtime.handlers.RuleFilterStepHandler.handle(RuleFilterStepHandler.java:30) ~[integration-runtime-1.6-SNAPSHOT.jar!/:1.6-SNAPSHOT]
	at io.syndesis.integration.runtime.IntegrationRouteBuilder.configureFlow(IntegrationRouteBuilder.java:174) ~[integration-runtime-1.6-SNAPSHOT.jar!/:1.6-SNAPSHOT]
	at io.syndesis.integration.runtime.IntegrationRouteBuilder.configure(IntegrationRouteBuilder.java:104) ~[integration-runtime-1.6-SNAPSHOT.jar!/:1.6-SNAPSHOT]
	at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:462) ~[camel-core-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:402) ~[camel-core-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	at org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:383) ~[camel-core-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	at org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1027) ~[camel-core-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	at org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1024) ~[camel-core-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270) ~[camel-core-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	at org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:1024) ~[camel-core-2.21.0.fuse-730042.jar!/:2.21.0.fuse-730042]
	at io.syndesis.integration.runtime.sb.IntegrationRuntimeAutoConfiguration$1.beforeApplicationStart(IntegrationRuntimeAutoConfiguration.java:92) ~[integration-runtime-springboot-1.6-SNAPSHOT.jar!/:1.6-SNAPSHOT]
	... 25 common frames omitted

Probably the culprit is https://github.com/syndesisio/syndesis/issues/562 , but I think it does not make sense now since we have the dedicated split

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:20 (18 by maintainers)

github_iconTop GitHub Comments

1reaction
dongniwangcommented, Mar 13, 2019

In that case, can we add this issue to the Collection Enhancement Epic (if there’s one?) so we can look at this in 7.4. @christophd @heiko-braun

0reactions
KurtStamcommented, Mar 18, 2019

OK I will hide filter for a collection, and add a task to the ‘Collection Enhancement Epic’ for 7.4.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Database Engine events and errors - SQL Server
Consult this MSSQL error code list to find explanations for error messages for SQL Server database engine events.
Read more >
SQL recipes — Dataiku DSS 11 documentation
SQL recipes¶ · Takes as input one or several SQL datasets and a single output dataset. · The output of the recipe may...
Read more >
Troubleshooting migration tasks in AWS Database Migration ...
Troubleshoot issues when migrating data using AWS Database Migration Service (AWS DMS).
Read more >
Debezium connector for MySQL
The Debezium MySQL connector reads the binlog, produces change events for row-level INSERT , UPDATE , and DELETE operations, and emits the change...
Read more >
Behavior Changes, Deprecated and Desupported Features for ...
SET PARAMETER commands removes the possibility of inconsistent ... to the database, filter e-mails to indexable plain text, or to HTML.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found