Snowflake & JDBC Connector Issue - NullPointerError

I have views/table and I want to connect it to sailpoint to fetch roles and user info.
As snowflake connector has limitation. I am trying to connect snowflake using JDBC driver. But I am getting the following error on connection test:

{
	"exception": {
		"stacktrace": "sailpoint.connector.ConnectorException: NullPointerException\n\tat com.sailpoint.ccg.cloud.container.Container.testConnection(Container.java:387)\n\tat com.sailpoint.ccg.cloud.container.ContainerIntegration.ping(ContainerIntegration.java:73)\n\tat com.sailpoint.ccg.handler.TestConnectionHandler.invoke(TestConnectionHandler.java:31)\n\tat sailpoint.gateway.accessiq.CcgPipelineMessageHandler.handleMessage_aroundBody0(CcgPipelineMessageHandler.java:47)\n\tat sailpoint.gateway.accessiq.CcgPipelineMessageHandler$AjcClosure1.run(CcgPipelineMessageHandler.java:1)\n\tat org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:167)\n\tat com.sailpoint.tracing.otel.TracedAspect.lambda$traceExecution$0(TracedAspect.java:38)\n\tat com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:170)\n\tat com.sailpoint.tracing.otel.GlobalTracer.trace(GlobalTracer.java:143)\n\tat com.sailpoint.tracing.otel.TracedAspect.traceExecution(TracedAspect.java:40)\n\tat sailpoint.gateway.accessiq.CcgPipelineMessageHandler.handleMessage(CcgPipelineMessageHandler.java:36)\n\tat com.sailpoint.pipeline.server.PipelineServer$InboundQueueListener$MessageHandler.run(PipelineServer.java:372)\n\tat java.base\/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base\/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base\/java.lang.Thread.run(Thread.java:829)\nCaused by: java.lang.NullPointerException\n\tat sailpoint.connector.jdbc.JDBCExceptionHandlerService.handleTestConfigurationException(JDBCExceptionHandlerService.java:80)\n\tat sailpoint.connector.jdbc.JDBCExceptionHandlerService.handleJDBCException(JDBCExceptionHandlerService.java:51)\n\tat sailpoint.connector.JDBCConnector.handleExceptionBuketing(JDBCConnector.java:387)\n\tat sailpoint.connector.JDBCConnector.testConfiguration(JDBCConnector.java:366)\n\tat sailpoint.connector.ConnectorProxy.testConfiguration(ConnectorProxy.java:468)\n\tat com.sailpoint.ccg.cloud.container.Container.testConnection(Container.java:380)\n\t... 16 more\n",
		"exception_class": "sailpoint.connector.ConnectorException",
		"exception_message": "NullPointerException"
	},
	"stack": "ccg",
	"pod": "cook",
	"connector-logging": "151",
	"Operation": "TestConfiguration",
	"clusterId": "2442",
	"utilities": "1.8.1",
	"buildNumber": "985",
	"apiUsername": "45e88081-8983-4f87-b76f-80885e1d23ad",
	"orgType": "",
	"file": "BaseHandler.java",
	"encryption": "1.8.1",
	"messageType": "test-connection",
	"connector-bundle-identityiq": "213",
	"line_number": 229,
	"@version": 1,
	"CB_version": "349",
	"cloud-modules-api": "1477",
	"logger_name": "com.sailpoint.ccg.handler.BaseHandler",
	"mantis-client": "1.8.1",
	"class": "com.sailpoint.ccg.handler.BaseHandler",
	"atlas-api": "1823",
	"va-gateway-client": "48",
	"tracing": "1.8.1",
	"clientId": "45e88081-8983-4f87-b76f-80885e1d23ad",
	"request_milliseconds": "4680",
	"source_host": "12751b315832",
	"method": "handleException",
	"org": "verisk-sb",
	"level": "ERROR",
	"IdentityIQ": "8.3p4 Build 1527a593753-20230805-223436",
	"message": "Exception ",
	"pipeline": "1.8.1",
	"@timestamp": "2024-05-29T17:15:49.454Z",
	"thread_name": "pool-6-thread-1",
	"atlas-util": "1823",
	"metrics": "1.8.1",
	"region": "us-east-1",
	"AppType": "JDBC",
	"Application": "SnowFlake PAM  [source]",
	"request_id": "ebf2aa1699ba420ab956cf8f625eacf3",
	"CB_Type": "connector-bundle-jdbc",
	"queue": "cook-verisk-sb-cluster-2442",
	"SCIM Common": "8.0 Build 00b1f252d1b-20200225-190809"
}

It is strange to see Null Pointer Exception in Test connection, We used to see that in our custom coding.

Anyway, for starters, did you add the jars that requires for your database type ?

Yes, I uploaded the Jar.

You have to be aware that ISC does not support officialy JDBC connection to Snowflake so it might be the reason behind your problem. This are the DBs supported by JDBC Connector

1 Like

So how can I run custom query to fetch roles and user from snowflake. Because snowflake connector does not allow me to do that ?

I recommend creating a SaaS Connector. With a SaaS Connector, you can work with any TypeScript package and have much more control over how you communicate with your source. For example, you could create a SaaS connector that imports the snowflake-sdk package to communicate with your Snowflake instance.