Hi Please note this issue is now tracked here:
http://code.google.com/p/h2database/issues/detail?id=307 Regards, Thomas On Fri, Apr 1, 2011 at 8:43 PM, Rajesh <[email protected]> wrote: > Hi, > > We have been using H2 under very heavy loads (in the order of half a > million queries in a span of an hour) and are very happy with its > flexibility and performance. > > Recently we saw a NPE being thrown from H2. Our logs were filled with > NPEs and looked like all the queries failed. However, on restarting > the JVM, which in turn initiates a new DataSource and connection with > DB seems to correct the issue and everything is back in order now. > > Not sure if this is some sort of a bug or if we need to something > else. Any pointers on how to find out the root cause of this issue > will be really helpful. > > TIA, > Rajesh > > > Details > > H2 Version: h2-1.2.136.jar > Mode: Embedded > OS: Linux > JVM: 1.6.0_19 (32 Bit) > DB URL: jdbc:h2:db/ > cruise;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MVCC=TRUE;DATABASE_EVENT_LISTENER='foo' > > > Trace: > > Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: > --- The error occurred in com/thoughtworks/cruise/server/dao/maps/ > Stage.xml. > --- The error occurred while applying a parameter map. > --- Check the allPassedStagesAfter-InlineParameterMap. > --- Check the statement (query failed). > --- Cause: org.h2.jdbc.JdbcSQLException: General error: > "java.lang.NullPointerException" [50000-136] > at > com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java: > 201) > at > com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java: > 139) > at > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java: > 567) > at > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java: > 541) > at > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java: > 118) > at org.springframework.orm.ibatis.SqlMapClientTemplate > $3.doInSqlMapClient(SqlMapClientTemplate.java:298) > at > org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java: > 209) > ... 18 more > Caused by: org.h2.jdbc.JdbcSQLException: General error: > "java.lang.NullPointerException" [50000-136] > at > org.h2.message.DbException.getJdbcSQLException(DbException.java:327) > at org.h2.message.DbException.get(DbException.java:156) > at org.h2.message.DbException.convert(DbException.java:279) > at org.h2.message.DbException.toSQLException(DbException.java: > 252) > at org.h2.message.TraceObject.logAndConvert(TraceObject.java: > 387) > at > org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java: > 190) > at > org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java: > 172) > at > org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java: > 172) > at > com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java: > 185) > at > com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java: > 221) > at > com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java: > 189) > ... 24 more > Caused by: java.lang.NullPointerException > at org.h2.index.PageBtreeIndex.writeRow(PageBtreeIndex.java: > 362) > at org.h2.index.PageBtreeLeaf.writeData(PageBtreeLeaf.java: > 262) > at org.h2.index.PageBtreeLeaf.write(PageBtreeLeaf.java:239) > at org.h2.store.PageStore.writeBack(PageStore.java:775) > at org.h2.util.CacheLRU.removeOld(CacheLRU.java:179) > at org.h2.util.CacheLRU.removeOldIfRequired(CacheLRU.java:124) > at org.h2.util.CacheLRU.put(CacheLRU.java:102) > at org.h2.store.PageStore.getPage(PageStore.java:592) > at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:211) > at org.h2.index.PageDataNode.getRow(PageDataNode.java:281) > at org.h2.index.PageDataNode.getRow(PageDataNode.java:282) > at org.h2.index.PageDataIndex.getRow(PageDataIndex.java:387) > at org.h2.index.PageDataIndex.getRow(PageDataIndex.java:376) > at org.h2.table.RegularTable.getRow(RegularTable.java:104) > at org.h2.index.PageBtreeIndex.getRow(PageBtreeIndex.java:285) > at org.h2.index.PageBtreeCursor.get(PageBtreeCursor.java:45) > at org.h2.index.MultiVersionCursor.get(MultiVersionCursor.java: > 81) > at org.h2.index.IndexCursor.get(IndexCursor.java:207) > at org.h2.table.TableFilter.getValue(TableFilter.java:662) > at > org.h2.expression.ExpressionColumn.getValue(ExpressionColumn.java:166) > at org.h2.expression.Comparison.getValue(Comparison.java:173) > at > org.h2.expression.ConditionAndOr.getValue(ConditionAndOr.java:83) > at > org.h2.expression.Expression.getBooleanValue(Expression.java:185) > at org.h2.table.TableFilter.isOk(TableFilter.java:332) > at org.h2.table.TableFilter.next(TableFilter.java:296) > at org.h2.command.dml.Select.queryFlat(Select.java:492) > at org.h2.command.dml.Select.queryWithoutCache(Select.java: > 579) > at org.h2.command.dml.Query.query(Query.java:233) > at org.h2.index.ViewIndex.find(ViewIndex.java:191) > at org.h2.index.IndexCursor.find(IndexCursor.java:136) > at org.h2.table.TableFilter.next(TableFilter.java:254) > at org.h2.command.dml.Select.queryFlat(Select.java:492) > at org.h2.command.dml.Select.queryWithoutCache(Select.java: > 579) > at org.h2.command.dml.Query.query(Query.java:233) > at > org.h2.index.IndexCondition.getCurrentResult(IndexCondition.java:156) > at org.h2.index.IndexCursor.find(IndexCursor.java:93) > at org.h2.table.TableFilter.next(TableFilter.java:254) > at org.h2.command.dml.Select.queryFlat(Select.java:492) > at org.h2.command.dml.Select.queryWithoutCache(Select.java: > 579) > at org.h2.command.dml.Query.query(Query.java:233) > at org.h2.command.CommandContainer.query(CommandContainer.java: > 80) > at org.h2.command.Command.executeQuery(Command.java:132) > at > org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java: > 175) > ... 29 more > > -- > You received this message because you are subscribed to the Google Groups "H2 > Database" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/h2-database?hl=en. > > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/h2-database?hl=en.
