qihuajun opened a new issue #3045: Sharding Proxy throw NullPointerException while querying URL: https://github.com/apache/incubator-shardingsphere/issues/3045 ## Bug Report ### Which version of ShardingSphere did you use? latest: 4.0.0-RC2 ### Which project did you use? Sharding-JDBC or Sharding-Proxy? Sharding-Proxy ### Expected behavior Executing query without exception ### Actual behavior Almost every query I performed, though I got the query result, but there's an error log record below in log file: ``` [ERROR] 20:17:38.524 [ShardingSphere-Command-5] o.a.s.s.f.c.CommandExecutorTask - Exception occur: java.lang.NullPointerException: null at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.datasource.JDBCBackendDataSource.createConnection(JDBCBackendDataSource.java:150) at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.datasource.JDBCBackendDataSource.getConnections(JDBCBackendDataSource.java:123) at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection.getConnectionFromUnderlying(BackendConnection.java:189) at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection.getConnectionsWithoutTransaction(BackendConnection.java:172) at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection.getConnections(BackendConnection.java:141) at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.callback.ProxyJDBCExecutePrepareCallback.getConnections(ProxyJDBCExecutePrepareCallback.java:56) at org.apache.shardingsphere.core.execute.sql.prepare.SQLExecutePrepareTemplate.getSQLExecuteGroups(SQLExecutePrepareTemplate.java:89) at org.apache.shardingsphere.core.execute.sql.prepare.SQLExecutePrepareTemplate.getSynchronizedExecuteUnitGroups(SQLExecutePrepareTemplate.java:67) at org.apache.shardingsphere.core.execute.sql.prepare.SQLExecutePrepareTemplate.getExecuteUnitGroups(SQLExecutePrepareTemplate.java:59) at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.JDBCExecuteEngine.execute(JDBCExecuteEngine.java:78) at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.JDBCDatabaseCommunicationEngine.execute(JDBCDatabaseCommunicationEngine.java:95) at org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.JDBCDatabaseCommunicationEngine.execute(JDBCDatabaseCommunicationEngine.java:81) at org.apache.shardingsphere.shardingproxy.backend.text.query.QueryBackendHandler.execute(QueryBackendHandler.java:54) at org.apache.shardingsphere.shardingproxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor.execute(MySQLComQueryPacketExecutor.java:72) at org.apache.shardingsphere.shardingproxy.frontend.command.CommandExecutorTask.executeCommand(CommandExecutorTask.java:86) at org.apache.shardingsphere.shardingproxy.frontend.command.CommandExecutorTask.run(CommandExecutorTask.java:66) 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) ``` ### Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc. Just regular config, regular sql like `show create table` or `select * from table` can prouduce the error log above. Besides this bug I reported, I also found its unfriendly for developers to use Sharding Proxy: 1. the document about Sharding Proxy is too simple, I had to read the source code to find out how to config sharding tables with self-implemented sharding algorithm 2. No detailed error message if schema config file has error configs, here is the error message I got when I start Sharding Proxy with some wrong config: ``` Exception in thread "main" Cannot create property=shardingRule for JavaBean=org.apache.shardingsphere.shardingproxy.config.yaml.YamlProxyRuleConfiguration@31304f14 in 'reader', line 1, column 1: schemaName: mbase ^ Cannot create property=tables for JavaBean=org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingRuleConfiguration@6302bbb1 in 'reader', line 502, column 3: tables: ^ No single argument constructor found for class org.apache.shardingsphere.core.yaml.config.sharding.YamlTableRuleConfiguration in 'reader', line 503, column 5: brand: ^ in 'reader', line 502, column 3: tables: ^ at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:312) at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:189) at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:345) at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182) at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:141) at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:127) at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:450) at org.yaml.snakeyaml.Yaml.loadAs(Yaml.java:410) at org.apache.shardingsphere.core.yaml.engine.YamlEngine.unmarshal(YamlEngine.java:59) at org.apache.shardingsphere.shardingproxy.config.ShardingConfigurationLoader.loadRuleConfiguration(ShardingConfigurationLoader.java:85) at org.apache.shardingsphere.shardingproxy.config.ShardingConfigurationLoader.load(ShardingConfigurationLoader.java:63) at org.apache.shardingsphere.shardingproxy.Bootstrap.main(Bootstrap.java:74) Caused by: Cannot create property=tables for JavaBean=org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingRuleConfiguration@6302bbb1 in 'reader', line 502, column 3: tables: ^ No single argument constructor found for class org.apache.shardingsphere.core.yaml.config.sharding.YamlTableRuleConfiguration in 'reader', line 503, column 5: brand: ^ at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:312) at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:189) at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182) at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:297) ``` with the error log above, I totally have no idea what's wrong in config file.
---------------------------------------------------------------- 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: us...@infra.apache.org With regards, Apache Git Services