问一个关于apache.commons.fileupload的错误

我现在使用的是apache.commons.fileupload来实现上传
上传是没问题啦,但有一个很奇怪的现象想不懂
现象是这样的:因为可能用户上传上来的文件名会和已经存在的文件名相同,所以我就做了一个function来处理,其实也就是要用户自己输入新文件名来代替,功能是实现了,但如果我想在原来画面再改名上传同一个文件的话,就出现错误了NullPoint。非要回到原来上传的画面,再上传同一个文件,然后检查有相同的文件,然后再进入改名的那个jsp。查了一下,出错的是item.write(savedFile);但item是确实已经传进去的,整个function的这样的
代码:


public void uploadByHand(FileItem item, String fileName) {
if (!item.isFormField()) {
System.out.println("1");
String name = item.getName();
System.out.println(
"2");
//保存上传的文件到指定的目录
name=name.replace('\\','/');
System.out.println(
"3");
File savedFile = new File(filePath, fileName);
System.out.println(
"4");

try {
item.write(savedFile);
System.out.println(
"5");
} catch (Exception e) {
e.printStackTrace();
}

}
}

这里面的item是在之前已经放入一个vector,然后使用(FileItem)vector.get(i)获得的


今天把fileupload.jar拆开来看
发觉似乎是无法关闭BufferedInputStream和BufferedOutputStream,但为什么会这样呢?在网上找了一段时间,未果。

要做上传得模块,看到有这个开源得jar但不知道如何做,向楼主请教?
谢谢