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

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • fuse-7.3.1
    • fuse-7.2
    • Camel, Fuse Online
    • None
    • % %
    • -
    • 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.

      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.

        1. syndesis_not_null_for_timer_component.png
          syndesis_not_null_for_timer_component.png
          180 kB
        2. syndesis_null_for_custom_component.png
          syndesis_null_for_custom_component.png
          167 kB
        3. syndesis-extraComponents.png
          syndesis-extraComponents.png
          174 kB
        4. Custom Connector Producer-export.zip
          100 kB
        5. custom-connector-1.0.0-SNAPSHOT (1).jar
          97 kB
        6. custom-connector (1).zip
          100 kB
        7. AnotherReproducer.zip
          107 kB
        8. custom-connector-fix.zip
          113 kB
        9. custom-connector-fix-2.zip
          115 kB

              atarocch@redhat.com Andrea Tarocchi
              rhn-support-cpandey Chandra Shekhar Pandey (Inactive)
              Tomas Plevko Tomas Plevko
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: