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

NPE when integration contains webhook step and an error

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • None
    • fuse-next-TP1-GA
    • Fuse Online
    • +
    • Automated
    • Hide
      • Create Webhook -> Invoke SQL integration
      • As a query, use invalid query like INSERT INTO contact (create_date) VALUES ('Red Hat')
      • Publish integration and invoke Webhook
      • Look to the integration activity tab / the log in the integration pod
      Show
      Create Webhook -> Invoke SQL integration As a query, use invalid query like INSERT INTO contact (create_date) VALUES ('Red Hat') Publish integration and invoke Webhook Look to the integration activity tab / the log in the integration pod

      The following NPE is thrown in the integration log when the integration contains Webhook step and the integration contains an error.

      java.lang.NullPointerException
      	at io.syndesis.connector.support.processor.ErrorMapper.isOrCausedBySyndesisConnectorException(ErrorMapper.java:92)
      	at io.syndesis.connector.support.processor.ErrorMapper.mapError(ErrorMapper.java:65)
      	at io.syndesis.connector.webhook.WebhookOnExceptionHandler.process(WebhookOnExceptionHandler.java:42)
      	at org.apache.camel.support.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:64)
      	at org.apache.camel.support.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:93)
      	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286)
      	at org.apache.camel.processor.FatalFallbackErrorHandler.process(FatalFallbackErrorHandler.java:82)
      	at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.deliverToFailureProcessor(RedeliveryErrorHandler.java:1050)
      	at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:640)
      	at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:153)
      	at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:147)
      	at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:84)
      	at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
      	at org.apache.camel.http.common.CamelServlet.doService(CamelServlet.java:214)
      	at org.apache.camel.http.common.CamelServlet.service(CamelServlet.java:80)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
      	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
      	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
      	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
      	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
      	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
      	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
      	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
      	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
      	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
      	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
      	at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:109)
      	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
      	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
      	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
      	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
      	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
      	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
      	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
      	at io.opentracing.contrib.web.servlet.filter.TracingFilter.doFilter(TracingFilter.java:189)
      	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
      	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
      	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
      	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
      	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
      	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
      	at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
      	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
      	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
      	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
      	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
      	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
      	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
      	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
      	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
      	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
      	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
      	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
      	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
      	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
      	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
      	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
      	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
      	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
      	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
      	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
      	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376)
      	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      	Suppressed: org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; ERROR: invalid input syntax for type date: "Red Hat"
        Position: 43; nested exception is org.postgresql.util.PSQLException: ERROR: invalid input syntax for type date: "Red Hat"
        Position: 43
      		at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:104)
      		at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
      		at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
      		at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
      		at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1443)
      		at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:633)
      		at org.apache.camel.component.sql.SqlProducer.process(SqlProducer.java:123)
      		at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:67)
      		at org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:90)
      		... 58 more
      	Caused by: org.postgresql.util.PSQLException: ERROR: invalid input syntax for type date: "Red Hat"
        Position: 43
      		at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2578)
      		at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2313)
      		at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:331)
      		at org.postgresql.jdbc.PgPreparedStatement.getParameterMetaData(PgPreparedStatement.java:1591)
      		at org.apache.commons.dbcp.DelegatingPreparedStatement.getParameterMetaData(DelegatingPreparedStatement.java:221)
      		at org.apache.commons.dbcp.DelegatingPreparedStatement.getParameterMetaData(DelegatingPreparedStatement.java:221)
      		at org.apache.camel.component.sql.SqlProducer$2.doInPreparedStatement(SqlProducer.java:127)
      		at org.apache.camel.component.sql.SqlProducer$2.doInPreparedStatement(SqlProducer.java:123)
      		at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:617)
      		... 61 more
      
      

      E.g., for integration from steps to reproduce, this error should be shown instead of NPE:

      2020-05-18 09:11:09.761  WARN 1 --- [/syndesis-timer] o.a.camel.component.timer.TimerConsumer  : Error processing exchange. Exchange[i-M7b2Gef5CuiNtKvM9rCz]. Caused by: [org.springframework.dao.DataIntegrityViolationException - PreparedStatementCallback; ERROR: invalid input syntax for type date: "Red Hat"
      

      Syndesis:
      2.0-SNAPSHOT
      Build ID:
      344bbb59-c156-45ab-a378-bf02545557b8

              kstam@redhat.com Kurt Stam (Inactive)
              mkralik@redhat.com Matej Kralik
              Matej Kralik Matej Kralik
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: