duzhanfei opened a new issue #8303:
URL: https://github.com/apache/shardingsphere/issues/8303


   ### Which version of ShardingSphere did you use?
   5.0.0
   ### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
   shardingProxy 
   
   The problem occued in my project when i  invoke  interface  for updating .
   and the sharding key is not null. the result is  ok  when i change the proxy 
version to 4.1.1  
   
   part of  proxy config:
   
       pbcst_qry_info:
         actualDataNodes: ms_ds.pbcst_qry_info_${0..15}
         tableStrategy:
           standard:
             shardingColumn: ecif_cust_no
             shardingAlgorithmName: pbcst_qry_info_inline
         databaseStrategy:
           standard:
             shardingColumn: ecif_cust_no
             shardingAlgorithmName: database_inline
         keyGenerateStrategy:
           column: ecif_cust_no
           keyGeneratorName: snowflake
   
   
      pbcst_qry_info_inline:
         type: INLINE
         props:
           algorithm-expression: 
pbcst_qry_info_${Math.abs(ecif_cust_no.hashCode() % 16)} 
   
   log:
   [INFO ] 16:01:20.936 [ShardingSphere-Command-12] ShardingSphere-SQL - Logic 
SQL: SELECT @@session.transaction_read_only
   [INFO ] 16:01:20.937 [ShardingSphere-Command-12] ShardingSphere-SQL - 
SQLStatement: MySQLSelectStatement(limit=Optional.empty, lock=Optional.empty)
   [INFO ] 16:01:20.937 [ShardingSphere-Command-12] ShardingSphere-SQL - Actual 
SQL: replica_ds_0 ::: SELECT @@session.transaction_read_only
   [ERROR] 16:01:27.249 [ShardingSphere-Command-13] 
o.a.s.p.f.c.CommandExecutorTask - Exception occur:
   java.lang.NullPointerException: Cannot invoke method hashCode() on null 
object
           at 
org.codehaus.groovy.runtime.NullObject.hashCode(NullObject.java:174)
           at org.codehaus.groovy.runtime.NullObject$hashCode.call(Unknown 
Source)
           at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
           at 
org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:34)
           at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
           at org.codehaus.groovy.runtime.NullObject$hashCode.call(Unknown 
Source)
           at Script23$_run_closure1.doCall(Script23.groovy:1)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
           at java.lang.reflect.Method.invoke(Unknown Source)
           at 
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
           at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
           at 
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
           at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
           at groovy.lang.Closure.call(Closure.java:420)
           at groovy.lang.Closure.call(Closure.java:414)
           at 
org.apache.shardingsphere.sharding.algorithm.sharding.inline.InlineShardingAlgorithm.doSharding(InlineShardingAlgorithm.java:69)
           at 
org.apache.shardingsphere.sharding.route.strategy.type.standard.StandardShardingStrategy.doSharding(StandardShardingStrategy.java:67)
           at 
org.apache.shardingsphere.sharding.route.strategy.type.standard.StandardShardingStrategy.doSharding(StandardShardingStrategy.java:56)
           at 
org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRoutingEngine.routeTables(ShardingStandardRoutingEngine.java:214)
           at 
org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRoutingEngine.route0(ShardingStandardRoutingEngine.java:194)
           at 
org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRoutingEngine.routeByShardingConditionsWithCondition(ShardingStandardRoutingEngine.java:114)
           at 
org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRoutingEngine.routeByShardingConditions(ShardingStandardRoutingEngine.java:107)
           at 
org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRoutingEngine.getDataNodes(ShardingStandardRoutingEngine.java:84)
           at 
org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRoutingEngine.route(ShardingStandardRoutingEngine.java:69)
           at 
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.createRouteContext(ShardingSQLRouter.java:70)
           at 
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.createRouteContext(ShardingSQLRouter.java:55)
           at 
org.apache.shardingsphere.infra.route.engine.impl.PartialSQLRouteExecutor.route(PartialSQLRouteExecutor.java:59)
           at 
org.apache.shardingsphere.infra.route.engine.SQLRouteEngine.route(SQLRouteEngine.java:57)
           at 
org.apache.shardingsphere.infra.context.kernel.KernelProcessor.generateExecutionContext(KernelProcessor.java:52)
           at 
org.apache.shardingsphere.proxy.backend.communication.jdbc.JDBCDatabaseCommunicationEngine.execute(JDBCDatabaseCommunicationEngine.java:77)
           at 
org.apache.shardingsphere.proxy.backend.text.query.QueryBackendHandler.execute(QueryBackendHandler.java:61)
           at 
org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor.execute(MySQLComQueryPacketExecutor.java:62)
           at 
org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask.executeCommand(CommandExecutorTask.java:100)
           at 
org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask.run(CommandExecutorTask.java:76)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
           at java.lang.Thread.run(Unknown Source)
   
   
   
   
   
   
   
   
   
   


----------------------------------------------------------------
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]


Reply via email to