java.util.ArrayList引发IndexOutOfBounds异常

java.util.ArrayList引发IndexOutOfBounds异常,java,heap-memory,heap-corruption,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(QueryExecut

我今天发现了以下线索:

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
)。由于上面的跟踪来自system/PostgreSQL/Apache库的内部,所以内存非常低的系统有可能触发它吗


我的代码中似乎没有问题,或者跟踪也不会那么深入,对吧?

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

我的代码中的某个地方是什么?您的假设是不正确的,这几乎可以肯定是您的代码的一个问题。很可能您在某种程度上滥用了SQL查询机制,可能是在处理完打开的查询后没有关闭它们。