IndexOutOfBoundsException:索引:15,大小:19

 54打工仔i_858 发布于 2023-01-01 12:17

所以我前几天从我们的网络服务器上梳理了一些日志(寻找其他东西),当一些奇怪的东西引起了我的注意.

java.lang.IndexOutOfBoundsException: Index: 15, Size: 19
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)

这对我来说似乎不可能.

我查找了ArrayList#rangeCheck的源代码,这引起了我的注意

private void rangeCheck(int index) {
    if (index >= size)
        throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
}

基于我收到的信息应该永远不会发生.

不幸的是,我不知道目前内容是什么(这是从用于很多事情的代码中调用的).我一直无法重现它.我甚至不知道我从哪里开始.

问题:这是否应该发生?这是Java中的一个小故障吗?或者只是一个怪胎事故.

我认识到这可能不合时宜.我希望我能了解更多关于发生了什么的信息,但我不知道.

1 个回答
  • ArrayList不是多线程安全的.如果在大约另一个线程访问时被一个线程修改,index >= size那么在运行测试时可能是真的,但是在构建消息时是假的.

    2023-01-01 12:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有