The same configuration 5.3.0 functions normally, 5.3.1 functions abnormally
Bug Report
For English only, other languages will not accept.
Before report a bug, make sure you have:
- Searched open and closed GitHub issues.
- Read documentation: ShardingSphere Doc.
Please pay attention on issues you submitted, because we maybe need more details. If no response anymore and we cannot reproduce it on current information, we will close it.
Please answer these questions before submitting your issue. Thanks!
Which version of ShardingSphere did you use?
5.3.1
Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
ShardingSphere-JDBC
Expected behavior
No exception reported
Actual behavior
has exception reported
Reason analyze (If you can)
Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.
SQL:
CREATE TABLE `t_cipher_old` (
`id` bigint(20) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'å建æ¶é´',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
`mobile` varchar(100) DEFAULT NULL,
`pwd_cipher` varchar(100) DEFAULT NULL,
`customer_id` varchar(100) DEFAULT NULL,
`pwd_assisted_query` varchar(100) DEFAULT NULL,
`mobile_cipher` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Configï¼sharding.yaml
databaseName: broadcast_origin
dataSources:
broadcast_origin:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
driverClassName: com.mysql.jdbc.Driver
jdbcUrl: jdbc:mysql://localhost:13306/broadcast_origin?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
username: root
password: root
props:
sql-show: true # æ¯å¦å¼å¯æ§è¡SQLçè¾åº trueï¼æ¯
mode:
type: standalone
rules:
- !ENCRYPT
encryptors:
pwd-encryptor-aes: # AESå å¯ç®æ³
type: AES #å¯é
props:
aes-key-value: 123456abc
tables:
t_cipher_old: # éè¦å å¯ç表å
columns:
pwd: # é»è¾åå
#plainColumn: pwd # ææåå
cipherColumn: pwd_cipher # 坿åå
encryptorName: pwd-encryptor-aes # é
ç½®è¯¥å¯æåæ®µçå å¯ç®æ³ï¼é
ç½®äºspring.shardingsphere.rules.encrypt.encryptors.pwd-encryptor-aes
queryWithCipherColumn: true # æ¯å¦ä½¿ç¨å¯æå段æ¥è¯¢ trueï¼æ¯, false ä½¿ç¨ææå段æ¥è¯¢
JAVA Code:
String jdbcUrl = "jdbc:shardingsphere:classpath:sharding.yaml";
String sql = "SELECT * FROM t_cipher_old t";
HikariDataSource dataSource = new HikariDataSource();
dataSource.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
dataSource.setJdbcUrl(jdbcUrl);
try (
Connection conn = dataSource.getConnection();
PreparedStatement ps = conn.prepareStatement(sql)) {
ResultSet resultSet = ps.executeQuery();
System.out.println(resultSet);
} catch (SQLException e) {
e.printStackTrace();
}
Exception:
Exception in thread "main" java.lang.AbstractMethodError
at org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder.buildRules(GlobalRulesBuilder.java:54)
at org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory.create(MetaDataContextsFactory.java:92)
at org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory.create(MetaDataContextsFactory.java:68)
at org.apache.shardingsphere.mode.manager.standalone.StandaloneContextManagerBuilder.build(StandaloneContextManagerBuilder.java:54)
at org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource.createContextManager(ShardingSphereDataSource.java:81)
at org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource.(ShardingSphereDataSource.java:66)
at org.apache.shardingsphere.driver.api.ShardingSphereDataSourceFactory.createDataSource(ShardingSphereDataSourceFactory.java:93)
at org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory.createDataSource(YamlShardingSphereDataSourceFactory.java:133)
at org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory.createDataSource(YamlShardingSphereDataSourceFactory.java:75)
at org.apache.shardingsphere.driver.jdbc.core.driver.DriverDataSourceCache.createDataSource(DriverDataSourceCache.java:51)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at org.apache.shardingsphere.driver.jdbc.core.driver.DriverDataSourceCache.get(DriverDataSourceCache.java:45)
at org.apache.shardingsphere.driver.ShardingSphereDriver.connect(ShardingSphereDriver.java:51)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554)
at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
Example codes for reproduce this issue (such as a github link).
@zhang-zhipeng Thanks for your feedback, It is recommended that you use markdown to organize the code, otherwise it will be difficult to read.
@zhang-zhipeng Thanks for your feedback, It is recommended that you use markdown to organize the code, otherwise it will be difficult to read.
Indeed, I have updated
Please make sure all ShardingSphere JARs have same version.