liunancun opened a new issue #3178: The INSERT statement with <?xml has gone 
wrong.
URL: https://github.com/apache/incubator-shardingsphere/issues/3178
 
 
   ## Bug Report
   
   **For English only**, other languages will not accept.
   
   Before report a bug, make sure you have:
   
   - Searched open and closed [GitHub 
issues](https://github.com/apache/incubator-shardingsphere/issues).
   - Read documentation: [ShardingSphere 
Doc](https://shardingsphere.apache.org/document/current/en/overview).
   
   Please pay attention on issues you submitted, because we maybe need more 
details. 
   If no response **more than 7 days** 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?
   4.0.0-RC2
   
   ### Which project did you use? Sharding-JDBC or Sharding-Proxy?
   Sharding-JDBC
   
   ### Expected behavior
   execution succeed
   
   ### Actual behavior
   Execution error
   
   ### Reason analyze (If you can)
   
   ### Steps to reproduce the behavior, such as: SQL to execute, sharding rule 
configuration, when exception occur etc.
   
   application.properties
   `spring.shardingsphere.datasource.names=master,seller
   
   
spring.shardingsphere.datasource.master.type=com.alibaba.druid.pool.DruidDataSource
   
spring.shardingsphere.datasource.master.url=jdbc:mysql://192.168.99.214:3306/bessky_one?useSSL=false
   spring.shardingsphere.datasource.master.username=bessky_pss
   spring.shardingsphere.datasource.master.password=20092009
   spring.shardingsphere.datasource.master.initial-size=10
   spring.shardingsphere.datasource.master.min-idle=3
   spring.shardingsphere.datasource.master.max-active=127
   spring.shardingsphere.datasource.master.max-wait=30000
   
spring.shardingsphere.datasource.master.time-between-eviction-runs-millis=60000
   spring.shardingsphere.datasource.master.min-evictable-idle-time-millis=300000
   
   
spring.shardingsphere.datasource.seller.type=com.alibaba.druid.pool.DruidDataSource
   
spring.shardingsphere.datasource.seller.url=jdbc:mysql://192.168.99.214:3306/bessky_two?useSSL=false
   spring.shardingsphere.datasource.seller.username=bessky_pss
   
spring.shardingsphere.datasource.seller.password=oIocMyoOHocOFfF4Z8qoX/yZVIYfiIIUb10Z6kPrs8wJx31m0eC/Y6jvskQhOZH89Wxv/VRLbrP8HUDBKAFuWA==
   
spring.shardingsphere.datasource.seller.publickey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALPOQJqkemZrkFBmG/UcVOKcLJUsVwxY9qFQscNQSjZDRpJRyZLP0AtCB+NI9hVWqzwnbOBQP2gLMM+Qp9xzoCsCAwEAAQ==
   spring.shardingsphere.datasource.seller.filters=config
   
spring.shardingsphere.datasource.seller.connection-properties=config.decrypt=true;config.decrypt.key=${spring.shardingsphere.datasource.seller.publickey}
   spring.shardingsphere.datasource.seller.initial-size=10
   spring.shardingsphere.datasource.seller.min-idle=3
   spring.shardingsphere.datasource.seller.max-active=127
   spring.shardingsphere.datasource.seller.max-wait=30000
   
spring.shardingsphere.datasource.seller.time-between-eviction-runs-millis=60000
   spring.shardingsphere.datasource.seller.min-evictable-idle-time-millis=300000
   
   spring.shardingsphere.sharding.default-data-source-name=master
   
   
spring.shardingsphere.sharding.default-database-strategy.hint.algorithm-class-name=com.bessky.jdbc.MyHintShardingAlgorithm
   
   spring.shardingsphere.props.sql.show=true`
   
   Java Code
   `public void add() {
        KeyHolder keyHolder = new GeneratedKeyHolder();
   
        jdbcTemplate.update(new PreparedStatementCreator() {
                @Override
                public PreparedStatement createPreparedStatement(Connection 
connection) throws SQLException {
   
                        PreparedStatement ps = 
connection.prepareStatement("INSERT INTO t_name (name) VALUES (?)",
                                        Statement.RETURN_GENERATED_KEYS);
   
                        StatementCreatorUtils.setParameterValue(ps, 1, 12, 
"<?xml");
   
                        return ps;
                }
        }, keyHolder);
   
        keyHolder.getKey();
   }`
   
   Exception information
   `2019-10-08 10:22:02.446  INFO 40136 --- [nio-8080-exec-5] 
ShardingSphere-SQL                       : Rule Type: sharding
   2019-10-08 10:22:02.446  INFO 40136 --- [nio-8080-exec-5] ShardingSphere-SQL 
                      : Logic SQL: INSERT INTO t_name (name) VALUES (?)
   2019-10-08 10:22:02.446  INFO 40136 --- [nio-8080-exec-5] ShardingSphere-SQL 
                      : SQLStatement: 
TransparentOptimizedStatement(tables=Tables(tables=[Table(name=t_name, 
alias=Optional.absent())], schema=Optional.absent()))
   2019-10-08 10:22:02.446  INFO 40136 --- [nio-8080-exec-5] ShardingSphere-SQL 
                      : Actual SQL: seller ::: INSERT INTO t_name (name) VALUES 
(?) ::: [<?xml]
   2019-10-08 10:22:02.451 ERROR 40136 --- [nio-8080-exec-5] 
o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet 
[dispatcherServlet] in context with path [] threw exception [Request processing 
failed; nested exception is java.lang.ClassCastException: 
org.apache.shardingsphere.core.optimize.transparent.statement.TransparentOptimizedStatement
 cannot be cast to 
org.apache.shardingsphere.core.optimize.sharding.statement.dml.ShardingInsertOptimizedStatement]
 with root cause
   
   java.lang.ClassCastException: 
org.apache.shardingsphere.core.optimize.transparent.statement.TransparentOptimizedStatement
 cannot be cast to 
org.apache.shardingsphere.core.optimize.sharding.statement.dml.ShardingInsertOptimizedStatement
        at 
org.apache.shardingsphere.shardingjdbc.jdbc.core.statement.ShardingPreparedStatement.getGeneratedKey(ShardingPreparedStatement.java:194)
 ~[sharding-jdbc-core-4.0.0-RC2.jar:4.0.0-RC2]
        at 
org.apache.shardingsphere.shardingjdbc.jdbc.core.statement.ShardingPreparedStatement.getGeneratedKeys(ShardingPreparedStatement.java:180)
 ~[sharding-jdbc-core-4.0.0-RC2.jar:4.0.0-RC2]
        at 
org.springframework.jdbc.core.JdbcTemplate.lambda$update$1(JdbcTemplate.java:896)
 ~[spring-jdbc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:616) 
~[spring-jdbc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:892) 
~[spring-jdbc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at com.bessky.jdbc.TwoDao.add(TwoDao.java:36) ~[classes/:na]
        at 
com.bessky.jdbc.TwoDao$$FastClassBySpringCGLIB$$743045c9.invoke(<generated>) 
~[classes/:na]
        at 
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) 
~[spring-core-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
 ~[spring-tx-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:56)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:47)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
 ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
com.bessky.jdbc.TwoDao$$EnhancerBySpringCGLIB$$e19960e8.add(<generated>) 
~[classes/:na]
        at com.bessky.jdbc.HelloService.add(HelloService.java:37) ~[classes/:na]
        at com.bessky.jdbc.Jdbc02Application.add(Jdbc02Application.java:41) 
~[classes/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_161]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_161]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.8.0_161]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161]
        at 
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
 ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)
 ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
 ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
 ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
 ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
 ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
 ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
 ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) 
~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
 ~[spring-webmvc-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 
~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 
~[tomcat-embed-websocket-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 ~[spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
 ~[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
 [tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
 [tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) 
[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) 
[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
 [tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) 
[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) 
[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
 [tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
 [tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
 [tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
[tomcat-embed-core-9.0.17.jar:9.0.17]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[na:1.8.0_161]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[na:1.8.0_161]
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 [tomcat-embed-core-9.0.17.jar:9.0.17]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]`
   
   ### Example codes for reproduce this issue (such as a github link).
   

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


With regards,
Apache Git Services

Reply via email to