google-code-export / mybatis

Automatically exported from code.google.com/p/mybatis
0 stars 0 forks source link

EmptyStackException #794

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What version of the MyBatis are you using?
3.0.5

Please describe the problem.  Unit tests are best!
We have seen once a EmptyStackException as shown in the Stacktrace below.
Are there any clues or ideas what could be happening there?

Can you provide stack trace, logs, error messages that are displayed?
org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.util.EmptyStackException
### The error may exist in 
de/rewe/marktprozesse/rueckruf/krise/backend/dao/mapper/KrisenRueckrufDAOMapper.
xml
### The error may involve 
de.rewe.marktprozesse.rueckruf.krise.backend.dao.mapper.KrisenRueckrufDAOMapper.
isNanOderEanInEinemAktuellenKrisenRueckruf
### The error occurred while executing a query
### Cause: java.util.EmptyStackException
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:80)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:72)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:38)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:38)
    at $Proxy4.isNanOderEanInEinemAktuellenKrisenRueckruf(Unknown Source)
    at de.rewe.marktprozesse.rueckruf.krise.backend.dao.KrisenRueckrufDAO.isEanNanInEinemAktuellenProduktrueckruf(KrisenRueckrufDAO.java:994)
    at de.rewe.marktprozesse.rueckruf.krise.backend.service.KrisenRueckrufVerwaltungService.ermittleRueckrufInformationenZuInventurArtikel(KrisenRueckrufVerwaltungService.java:1151)
    at de.rewe.zam.bo.inventur.common.ServerInventurStammdatenBO.getProduktrueckrufInformation(ServerInventurStammdatenBO.java:1304)
    at de.rewe.zam.bo.inventur.common.ServerInventurStammdatenBO.trageProduktrueckrufInformationenEin(ServerInventurStammdatenBO.java:1195)
    at de.rewe.zam.bo.inventur.common.ServerInventurStammdatenBO.ermittleDatenFuerInventuraufnahme(ServerInventurStammdatenBO.java:1146)
    at de.rewe.zam.generatoren.inventur.py.InventurStammdatenPy.getStammdaten(InventurStammdatenPy.java:186)
    at de.rewe.zam.generatoren.inventur.py.InventurStammdatenPy.generiere(InventurStammdatenPy.java:113)
    at rewe.zam.server.generatoren.AbstrakterDBGenerator.generiereErgebnis(AbstrakterDBGenerator.java:320)
    at rewe.zam.server.dispatcher.BasicDispatcher.dispatch(BasicDispatcher.java:576)
    at rewe.zam.server.dispatcher.StatisticDispatcher.dispatch(StatisticDispatcher.java:178)
    at rewe.zam.server.ZAMServer.anfrage(ZAMServer.java:187)
    at rewe.zam.server.ZAMServer.anfrage(ZAMServer.java:317)
    at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:600)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:310)
    at sun.rmi.transport.Transport$1.run(Transport.java:159)
    at java.security.AccessController.doPrivileged(AccessController.java:284)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:898)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:920)
    at java.lang.Thread.run(Thread.java:736)
Caused by: java.util.EmptyStackException
    at java.util.Stack.pop(Stack.java:80)
    at org.apache.ibatis.ognl.JJTOgnlParserState.closeNodeScope(JJTOgnlParserState.java:109)
    at org.apache.ibatis.ognl.OgnlParser.propertyName(OgnlParser.java:2017)
    at org.apache.ibatis.ognl.OgnlParser.primaryExpression(OgnlParser.java:1539)
    at org.apache.ibatis.ognl.OgnlParser.navigationChain(OgnlParser.java:1244)
    at org.apache.ibatis.ognl.OgnlParser.unaryExpression(OgnlParser.java:1197)
    at org.apache.ibatis.ognl.OgnlParser.multiplicativeExpression(OgnlParser.java:972)
    at org.apache.ibatis.ognl.OgnlParser.additiveExpression(OgnlParser.java:895)
    at org.apache.ibatis.ognl.OgnlParser.shiftExpression(OgnlParser.java:751)
    at org.apache.ibatis.ognl.OgnlParser.relationalExpression(OgnlParser.java:509)
    at org.apache.ibatis.ognl.OgnlParser.equalityExpression(OgnlParser.java:406)
    at org.apache.ibatis.ognl.OgnlParser.andExpression(OgnlParser.java:353)
    at org.apache.ibatis.ognl.OgnlParser.exclusiveOrExpression(OgnlParser.java:300)
    at org.apache.ibatis.ognl.OgnlParser.inclusiveOrExpression(OgnlParser.java:247)
    at org.apache.ibatis.ognl.OgnlParser.logicalAndExpression(OgnlParser.java:194)
    at org.apache.ibatis.ognl.OgnlParser.logicalOrExpression(OgnlParser.java:141)
    at org.apache.ibatis.ognl.OgnlParser.conditionalTestExpression(OgnlParser.java:102)
    at org.apache.ibatis.ognl.OgnlParser.assignmentExpression(OgnlParser.java:65)
    at org.apache.ibatis.ognl.OgnlParser.expression(OgnlParser.java:24)
    at org.apache.ibatis.ognl.OgnlParser.topLevelExpression(OgnlParser.java:16)
    at org.apache.ibatis.ognl.Ognl.parseExpression(Ognl.java:113)
    at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:454)
    at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:433)
    at org.apache.ibatis.builder.xml.dynamic.TextSqlNode$BindingTokenParser.handleToken(TextSqlNode.java:40)
    at org.apache.ibatis.parsing.GenericTokenParser.parse(GenericTokenParser.java:25)
    at org.apache.ibatis.builder.xml.dynamic.TextSqlNode.apply(TextSqlNode.java:20)
    at org.apache.ibatis.builder.xml.dynamic.MixedSqlNode.apply(MixedSqlNode.java:14)
    at org.apache.ibatis.builder.xml.dynamic.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:22)
    at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:198)
    at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:137)
    at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:107)
    at de.rewe.marktprozess.api.mybatis.REWEExecutor.query(REWEExecutor.java:89)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:78)
    ... 30 more

Original issue reported on code.google.com by mark.dop...@gmail.com on 12 Mar 2013 at 9:20

GoogleCodeExporter commented 9 years ago
Looks like problem with an ognl expression, or at least, it looks like there is 
an expression in KrisenRueckrufDAOMapper.xml that breaks ognl.

If it is intermitent, it may be an OGNL bug. Versions 3.1+ optimize the use of 
ognl because expression caching was added. I would try upgrading.

If it is not, then look for the bag expression and rewrite it.

Original comment by eduardo.macarron on 12 Mar 2013 at 3:10

GoogleCodeExporter commented 9 years ago

Original comment by eduardo.macarron on 6 Apr 2013 at 4:28