在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

mybatis 并发执行时出现NullPointerException

2016-12-20 13:15| 发布者: zhangjf| 查看: 687| 评论: 0

摘要: 异常堆栈如下: ### Cause: java.lang.NullPointerException at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23) at org.apache.ibatis.session.defaults.D ...

异常堆栈如下:

  1. ### Cause: java.lang.NullPointerException
  2. at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
  3. at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:147)
  4. at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:134)
  5. at sun.reflect.GeneratedMethodAccessor725.invoke(Unknown Source)
  6. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  7. at java.lang.reflect.Method.invoke(Method.java:597)
  8. at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:355)
  9. ... 87 more
  10. Caused by: java.lang.NullPointerException
  11. at org.apache.ibatis.reflection.property.PropertyTokenizer.<init>(PropertyTokenizer.java:27)
  12. at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:114)
  13. at org.apache.ibatis.builder.xml.dynamic.DynamicContext$ContextMap.get(DynamicContext.java:89)
  14. at org.apache.ibatis.builder.xml.dynamic.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:107)
  15. at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1657)
  16. at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:92)
  17. at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
  18. at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:210)
  19. at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:49)
  20. at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
  21. at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:210)
  22. at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:333)
  23. at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:413)
  24. at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:395)
  25. at org.apache.ibatis.builder.xml.dynamic.OgnlCache.getValue(OgnlCache.java:42)
  26. at org.apache.ibatis.builder.xml.dynamic.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)
  27. at org.apache.ibatis.builder.xml.dynamic.IfSqlNode.apply(IfSqlNode.java:30)
  28. at org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:29)
  29. at org.apache.ibatis.builder.xml.dynamic.TrimSqlNode.apply(TrimSqlNode.java:42)
  30. at org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:29)
  31. at org.apache.ibatis.builder.xml.dynamic.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:37)
  32. at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:241)
  33. at org.apache.ibatis.executor.statement.BaseStatementHandler.<init>(BaseStatementHandler.java:61)
  34. at org.apache.ibatis.executor.statement.PreparedStatementHandler.<init>(PreparedStatementHandler.java:36)
  35. at org.apache.ibatis.executor.statement.RoutingStatementHandler.<init>(RoutingStatementHandler.java:42)
  36. at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:348)
  37. at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:43)
  38. at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:108)
  39. at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75)
  40. at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:145)
  41. ... 92 more
复制代码

这是mybatis依赖包OGNL 2.6.9的一个bug,可以通过升级mybatis版本到 3.3.0来解决此问题。

mybatis官方issue说明: https://github.com/mybatis/mybatis-3/issues/224

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-8 10:34

Copyright 2015-2025 djqfx

返回顶部