当前位置: 代码迷 >> Java Web开发 >> !文件上载时中途停止上载,后台报java.lang.ArrayIndexOutOfBoundsException
  详细解决方案

!文件上载时中途停止上载,后台报java.lang.ArrayIndexOutOfBoundsException

热度:10135   发布时间:2013-02-25 21:09:09.0
紧急求助!!文件下载时中途停止下载,后台报java.lang.ArrayIndexOutOfBoundsException
如题,我在文件下载时按下F5 刷新,后台报错java.lang.ArrayIndexOutOfBoundsException
显示是write(i)这一行。。请各位大侠帮帮忙,怎样解决。。。
本人菜鸟……

------解决方案--------------------------------------------------------
把你的代码提出来看一下,然后把整个报错信息都提出来。
------解决方案--------------------------------------------------------
意思好像是角标越界 不知道是不是
------解决方案--------------------------------------------------------
while ((i = in.read()) != -1) {
out.write(buffer,0,i);//为什么不用这个write方法?buffer是缓存大小,自己定义1024的倍数都可以
}
------解决方案--------------------------------------------------------
应该是,中途停止下载,对象里的值被清空了,相当于一个新的对象。你单步调试下。没有试过,只是猜测!
------解决方案--------------------------------------------------------
根据楼主的描述,你是在下载中刷新才会有异常,如果不刷新就没有异常了,对吧?
不知道你的下载代码有没有做session同步?没有的话就同步吧
------解决方案--------------------------------------------------------
你这种情况应该是下载代码所属的类是单例的,出现了多线程问题。
就是让你的下载代码在同一个session中串行化,也就是在同一个session中下载代码不能并行执行。
在下载代码中:
获取session,对session加锁。
synchronized (session) {
//下载代码放在这里
}
  相关解决方案