抛出IndexOutOfBounds异常的java.util.ArrayList

时间:2014-03-30 22:52:42

标签: java heap-memory heap-corruption

我今天看到了以下内容:

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库的内容,因此内存非常低的系统可能会触发它吗?

在我的代码中看起来不是问题,或者跟踪不会那么深,对吗?

1 个答案:

答案 0 :(得分:0)

ArrayLists使用从零开始的索引,索引2在长度为2的列表中无效(跟踪中给出的信息)。它可能是您的代码中的一个问题,它通过查询引擎传递,直到它触发异常。