TeslaCN opened a new issue #8570:
URL: https://github.com/apache/shardingsphere/issues/8570
## Question
There is a new property `exceptionOverrideClassName` in HikariCP 3.4.3. If
the method `setExceptionOverrideClassName` was invoked with `null` value, NPE
will occurred.
```yaml
[zk: zk36.zk.svc.cluster.local:2181(CONNECTED) 2] get
/shardingsphere-governance/schemas/logic_db/datasource
dataSources:
dataSource:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
props:
password: postgres
transactionIsolation: null
connectionTestQuery: null
driverClassName: org.postgresql.Driver
jdbcUrl: jdbc:postgresql://pg.local.wwj.icu:5432/elasticjob
schema: null
dataSourceClassName: null
connectionTimeout: 30000
idleTimeout: 600000
exceptionOverrideClassName: null
username: postgres
dataSourceJNDI: null
initializationFailTimeout: 1
minimumIdle: 10
maxLifetime: 1800000
maximumPoolSize: 10
validationTimeout: 5000
leakDetectionThreshold: 0
connectionInitSql: null
poolName: HikariPool-1
catalog: null
```
```java
GovernanceCenterConfiguration centerConfiguration =
getGovernanceCenterConfiguration();
GovernanceConfiguration governanceConfiguration = new
GovernanceConfiguration("shardingsphere-governance", centerConfiguration, true);
DataSource dataSource =
GovernanceShardingSphereDataSourceFactory.createDataSource(governanceConfiguration);
```
```
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:116)
at
org.apache.shardingsphere.infra.config.datasource.DataSourceConverter.lambda$getDataSourceMap$0(DataSourceConverter.java:43)
at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1321)
at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at
java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at
org.apache.shardingsphere.infra.config.datasource.DataSourceConverter.getDataSourceMap(DataSourceConverter.java:42)
at
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource.createSchemaContexts(GovernanceShardingSphereDataSource.java:87)
at
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource.<init>(GovernanceShardingSphereDataSource.java:64)
at
org.apache.shardingsphere.driver.governance.api.GovernanceShardingSphereDataSourceFactory.createDataSource(GovernanceShardingSphereDataSourceFactory.java:83)
at
icu.wwj.shardingsphere.GovernanceTest.assertUsingConfigCenterConfiguration(GovernanceTest.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)
Caused by: java.lang.NullPointerException
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at
com.zaxxer.hikari.HikariConfig.attemptFromContextLoader(HikariConfig.java:945)
at
com.zaxxer.hikari.HikariConfig.setExceptionOverrideClassName(HikariConfig.java:853)
... 42 more
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]