在JMeter中滚动子菜单项时触发未捕获ArrayIndexOutOfBoundsException异常
解决JMeter中Config Elements菜单滚动触发ArrayIndexOutOfBoundsException的问题
这是JMeter 4.0版本里一个明确的UI组件bug,由MenuScroller类处理鼠标滚动逻辑时的数组越界导致。下面给你梳理问题细节和可行的解决思路:
问题复现步骤
- 打开JMeter后,点击工具栏的
Add按钮 - 选择任意
Config Elements选项展开子菜单 - 向上/向下滚动鼠标滚轮,立即触发未捕获异常,对应错误日志如下:
2018-03-26 13:47:18,742 ERROR o.a.j.JMeter: Uncaught exception: java.lang.ArrayIndexOutOfBoundsException: -25 at org.apache.jorphan.gui.MenuScroller.refreshMenu(MenuScroller.java:550) ~[jorphan.jar:4.0 r1823414] at org.apache.jorphan.gui.MenuScroller.access$300(MenuScroller.java:55) ~[jorphan.jar:4.0 r1823414] at org.apache.jorphan.gui.MenuScroller$MouseScrollListener.mouseWheel...
解决办法
1. 升级JMeter到最新稳定版本
这个数组越界bug是JMeter 4.0的已知问题,在后续发布的JMeter 5.0及以上版本中已经被官方修复。直接升级到最新版(比如当前的5.6.3)是最彻底的解决方案,既能解决这个滚动问题,还能获得更多功能优化和稳定性提升。
2. 临时替代操作(无法立即升级时)
- 放弃用鼠标滚轮滚动菜单,改用键盘的上/下方向键来导航菜单选项
- 或者直接点击菜单外区域关闭菜单,重新打开后直接点击目标选项,跳过滚动步骤
3. 应急替换依赖包(不推荐)
如果必须停留在JMeter 4.0环境,可以尝试从JMeter 5.0安装包中提取jorphan.jar文件,替换当前JMeter安装目录lib文件夹下的同名文件。不过这种方式可能引发未知兼容性问题,仅作为临时应急方案,优先建议升级版本。
内容的提问来源于stack exchange,提问作者Ori Marko
相关产品推荐
相关产品推荐

