Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-10316

Fuse Online: Null Pointer Exception using connector extension with a third-party(custom) camel component

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: fuse-7.2
    • Fix Version/s: fuse-7.3.1
    • Component/s: Camel, Fuse Online
    • Labels:
      None
    • Steps to Reproduce:
      Hide

      1. Create and build connector extensions (is not needed to reproduce,
      as attached the binary)
      2. Upload the connector extension;
      3. Create a connection based on the connector extension;
      4. Create one integration with a start connector based on a timer with default configuration and a end connector based on the custom connector. You can also directly import the ZIP which is attached
      5. Publish integrations.
      6. Have a look at the logging of the application pod in Openshift.
      7. In logs we see exception.

      Caused by: java.lang.NullPointerException: null
      	at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:879) ~[jackson-core-2.8.11.jar!/:2.8.11]
      	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2858) ~[jackson-databind-2.8.11.1.jar!/:2.8.11.1]
      	at io.syndesis.integration.component.proxy.ComponentDefinition.forScheme(ComponentDefinition.java:128) ~[integration-component-proxy-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002]
      	at io.syndesis.integration.component.proxy.ComponentProxyComponent.<init>(ComponentProxyComponent.java:75) ~[integration-component-proxy-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002]
      	at io.syndesis.integration.runtime.handlers.ConnectorStepHandler.resolveComponent(ConnectorStepHandler.java:158) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002]
      	at io.syndesis.integration.runtime.handlers.ConnectorStepHandler.handle(ConnectorStepHandler.java:80) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002]
      	at io.syndesis.integration.runtime.IntegrationRouteBuilder.configureFlow(IntegrationRouteBuilder.java:179) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002]
      	at io.syndesis.integration.runtime.IntegrationRouteBuilder.configure(IntegrationRouteBuilder.java:129) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002]
      	at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:462) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001]
      	at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:402) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001]
      	at org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:383) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001]
      	at org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1027) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001]
      	at org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1024) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001]
      	at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001]
      	at org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:1024) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001]
      	at io.syndesis.integration.runtime.IntegrationRuntimeAutoConfiguration$1.beforeApplicationStart(IntegrationRuntimeAutoConfiguration.java:84) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002]
      	... 25 common frames omitted
      
      

      Attachments:
      1. Custom Connector Producer-export.zip: The definition of the Fuse Online integration.
      2. custom-connector-1.0.0-SNAPSHOT.jar: The binary of the connector extension which can be uploaded directly into Fuse Online.
      3. custom-connector.zip: The sources of the connector extension.
      4. AnotherReproducer .zip: This reproducer, I created based on http://camel.apache.org/creating-a-new-camel-component.html. However same error.

      Show
      1. Create and build connector extensions (is not needed to reproduce, as attached the binary) 2. Upload the connector extension; 3. Create a connection based on the connector extension; 4. Create one integration with a start connector based on a timer with default configuration and a end connector based on the custom connector. You can also directly import the ZIP which is attached 5. Publish integrations. 6. Have a look at the logging of the application pod in Openshift. 7. In logs we see exception. Caused by: java.lang.NullPointerException: null at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:879) ~[jackson-core-2.8.11.jar!/:2.8.11] at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2858) ~[jackson-databind-2.8.11.1.jar!/:2.8.11.1] at io.syndesis.integration.component.proxy.ComponentDefinition.forScheme(ComponentDefinition.java:128) ~[integration-component-proxy-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002] at io.syndesis.integration.component.proxy.ComponentProxyComponent.<init>(ComponentProxyComponent.java:75) ~[integration-component-proxy-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002] at io.syndesis.integration.runtime.handlers.ConnectorStepHandler.resolveComponent(ConnectorStepHandler.java:158) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002] at io.syndesis.integration.runtime.handlers.ConnectorStepHandler.handle(ConnectorStepHandler.java:80) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002] at io.syndesis.integration.runtime.IntegrationRouteBuilder.configureFlow(IntegrationRouteBuilder.java:179) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002] at io.syndesis.integration.runtime.IntegrationRouteBuilder.configure(IntegrationRouteBuilder.java:129) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002] at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:462) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001] at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:402) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001] at org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:383) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001] at org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1027) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001] at org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:1024) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001] at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3270) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001] at org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:1024) ~[camel-core-2.21.0.fuse-720050-redhat-00001.jar!/:2.21.0.fuse-720050-redhat-00001] at io.syndesis.integration.runtime.IntegrationRuntimeAutoConfiguration$1.beforeApplicationStart(IntegrationRuntimeAutoConfiguration.java:84) ~[integration-runtime-1.5.8.fuse-720001-redhat-00002.jar!/:1.5.8.fuse-720001-redhat-00002] ... 25 common frames omitted Attachments: 1. Custom Connector Producer-export.zip: The definition of the Fuse Online integration. 2. custom-connector-1.0.0-SNAPSHOT.jar: The binary of the connector extension which can be uploaded directly into Fuse Online. 3. custom-connector.zip: The sources of the connector extension. 4. AnotherReproducer .zip: This reproducer, I created based on http://camel.apache.org/creating-a-new-camel-component.html . However same error.
    • QE Test Coverage:
      -

      Description

      My Observation:

      • From code, I observe that json scheme for custom component is not being fetched from class CamelCatalogJsonSchemaResolver.java(Seems new org.apache.camel.catalog package in Camel 2.21.x).

      Image Description:
      1. syndesis_not_null_for_timer_component.png: json is not-null for timer component.
      2. syndesis_null_for_custom_component.png: json is null for custom camel component.
      3. syndesis-extraComponents.png: It try to get json scheme from CamelCatalogJSonSchemaResolver.extraComponentsJSonSchema but that too is null.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                valdar Andrea Tarocchi
                Reporter:
                cpandey Chandra Shekhar Pandey
                Tester:
                Tomas Plevko
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: