【发布时间】:2014-05-10 03:59:20
【问题描述】:
我今天发现了以下痕迹:
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1720)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at [.. somewhere in my code]
那段时间系统非常繁忙,我猜想内存也很紧张,而且我还遇到了一些堆耗尽错误 (java.lang.OutOfMemoryError: Java heap space)。由于上述跟踪来自系统 / PostgreSQL / Apache 库的胆量,内存非常低的系统可能会触发它吗?
在我的代码中看起来不是问题,或者跟踪不会那么深,对吧?
【问题讨论】:
-
什么是
somewhere in my code?您的假设不正确,这几乎可以肯定是您的代码存在问题。 -
您很可能以某种方式滥用了 SQL 查询机制,可能是在您完成查询后没有关闭打开的查询。
标签: java heap-memory heap-corruption