【发布时间】:2020-04-01 16:04:33
【问题描述】:
我在一个 java 1.7 项目中遇到了这个异常:
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: -1
at java.util.LinkedList.checkPositionIndex(LinkedList.java:558) ~[na:1.7.0_251]
at java.util.LinkedList.listIterator(LinkedList.java:865) ~[na:1.7.0_251]
at java.util.AbstractList.listIterator(AbstractList.java:299) ~[na:1.7.0_251]
at java.util.AbstractSequentialList.iterator(AbstractSequentialList.java:239) ~[na:1.7.0_251]
at com.project.exceptions.handlers.JsfExceptionHandler.handle(JsfExceptionHandler.java:74) ~[project-0.0.1-SNAPSHOT.jar:na]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119) ~[jsf-impl-2.1.13-redhat-1.jar!/:2.1.13-redhat-1]
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) ~[jsf-impl-2.1.13-redhat-1.jar!/:2.1.13-redhat-1]
at org.springframework.faces.webflow.FlowLifecycle.render(FlowLifecycle.java:80) ~[spring-faces-2.3.2.RELEASE.jar:2.3.2.RELEASE]
at org.springframework.faces.webflow.JsfView.render(JsfView.java:89) ~[spring-faces-2.3.2.RELEASE.jar:2.3.2.RELEASE]
at org.springframework.webflow.engine.ViewState.render(ViewState.java:296) ~[spring-webflow-2.3.2.RELEASE.jar:2.3.2.RELEASE]
at org.springframework.webflow.engine.ViewState.resume(ViewState.java:207) ~[spring-webflow-2.3.2.RELEASE.jar:2.3.2.RELEASE]
at org.springframework.webflow.engine.Flow.resume(Flow.java:545) [spring-webflow-2.3.2.RELEASE.jar:2.3.2.RELEASE]
at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:258) [spring-webflow-2.3.2.RELEASE.jar:2.3.2.RELEASE]
... 62 common frames omitted
但我不知道在哪种情况下 LinkedList 的大小可能是 -1,不应该是正数吗?有什么建议吗?
自定义异常处理程序代码(第 74 行是 for)
public class JsfExceptionHandler extends ExceptionHandlerWrapper {
...
@Override
public void handle() throws FacesException {
FacesContext fc = ContextUtils.getFacesContextInstance();
for (Iterator<ExceptionQueuedEvent> i = getUnhandledExceptionQueuedEvents().iterator(); i.hasNext();) {
...
}
}
}
【问题讨论】:
-
Edit 您的问题并发布您的代码......我们应该如何在不知道您在做什么的情况下提供帮助?见How to Ask。
-
感谢您的回答,我不需要有人调试我的代码,我只需要知道在哪种情况下 LinkedList 的大小可能等于 -1,不应该是一个正数还是最后为零?这是一个笼统的问题,因为也许我只是错过了一些东西。
-
显示代码对您来说更实用,这样我们就可以找出为什么它返回-1,而不是我们试图猜测它可能发生的所有可能情况.在这种情况下,我们可能不一定会调试您的代码,但我们希望能够解释为什么您至少得到 -1。
-
我不得不同意这不是@Matteo 的代码的问题,LinkedList.size 怎么能是-1 是一个非常简单的问题。
-
因为
LinkedList不是线程安全的,是不是您的代码同时从不同线程中删除了列表中的某些项目?
标签: java indexoutofboundsexception