axel8888
axel8888
按其他issue里的方法继承MultiPointOutputStream在close里加上noSyncLengthMap.remove(blockIndex);但是依旧会出现,用16进制编辑器查看出错的位置发现实际上下载到了东西,并不是00占位,所以直接在这个继承类里重写write把统计已下载长度计数用其他方式承载,比如 ``` private long[] totalSizes = new long[breakpointCount]; public synchronized void write(int blockIndex, byte[] bytes, int length) throws IOException { ... totalSizes[blockIndex] += length; inspectAndPersist(); } ``` 判断长度也改成用这个 ``` public...
我觉得罪魁祸首应该是那个done不是同步方法。。继承下来改成同步就一切正常了
测试了,就是其他帖子里继承ProcessFileStrategy和MultiPointOutputStream的方法,然后把done方法改成synchorized就行了
改完我这里都很正常从没再出现过那个报错