danikula / danikula/AndroidVideoCache
ProxyCacheException: offset < 0: -2147476036
- 主要语言
- Java
- 星标
- 5.5k
- 派生
- 1.2k
- PR 合并指标
- 30 天内没有已合并 PR
描述
The code that caused the exception at com.danikula.videocache.file.FileCache.available(FileCache.java:46)
//old code :
@Override
public synchronized long available() throws ProxyCacheException {
try {
return (int) dataFile.length();
} catch (IOException e) {
throw new ProxyCacheException("Error reading length of file " + file, e);
}
}
//change code
@Override
public synchronized long available() throws ProxyCacheException {
try {
long fileSize = dataFile.length();
return fileSize;
} catch (IOException e) {
throw new ProxyCacheException("Error reading length of file " + file, e);
}
}
this is error log:
com.danikula.videocache.ProxyCacheException: Error writing 8192 bytes to java.io.RandomAccessFile@530f0a3 from buffer with size 8192. Version: 2.7.1
at com.danikula.videocache.file.FileCache.append(FileCache.java:73)
at com.danikula.videocache.ProxyCache.readSource(ProxyCache.java:132)
at com.danikula.videocache.ProxyCache.access$100(ProxyCache.java:19)
at com.danikula.videocache.ProxyCache$SourceReaderRunnable.run(ProxyCache.java:187)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.io.IOException: offset < 0: -2147476036
at java.io.RandomAccessFile.seek(RandomAccessFile.java:612)
at com.danikula.videocache.file.FileCache.append(FileCache.java:69)
at com.danikula.videocache.ProxyCache.readSource(ProxyCache.java:132)
at com.danikula.videocache.ProxyCache.access$100(ProxyCache.java:19)
at com.danikula.videocache.ProxyCache$SourceReaderRunnable.run(ProxyCache.java:187)
at java.lang.Thread.run(Thread.java:919)
com.danikula.videocache.ProxyCacheException: Error writing 764 bytes to java.io.RandomAccessFile@530f0a3 from buffer with size 8192. Version: 2.7.1
at com.danikula.videocache.file.FileCache.append(FileCache.java:73)
at com.danikula.videocache.ProxyCache.readSource(ProxyCache.java:132)
at com.danikula.videocache.ProxyCache.access$100(ProxyCache.java:19)
at com.danikula.videocache.ProxyCache$SourceReaderRunnable.run(ProxyCache.java:187)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.io.IOException: offset < 0: -2147476036
at java.io.RandomAccessFile.seek(RandomAccessFile.java:612)
at com.danikula.videocache.file.FileCache.append(FileCache.java:69)
at com.danikula.videocache.ProxyCache.readSource(ProxyCache.java:132)
at com.danikula.videocache.ProxyCache.access$100(ProxyCache.java:19)
at com.danikula.videocache.ProxyCache$SourceReaderRunnable.run(ProxyCache.java:187)
at java.lang.Thread.run(Thread.java:919)
贡献指南
这个仓库没有索引到贡献指南
调研方向
从 FileCache.java:46 的 com.danikula.videocache.file.FileCache.available 和第 69-73 行的 FileCache.append 开始,然后跟踪第 132 行的 ProxyCache.readSource。重现报告的偏移错误,并验证向缓存追加内容不再引发异常;issue 中包含建议的 available() 更改,可用于对比。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- android, java
- 领域
- mobile-dev
- Issue 类型
- 缺陷
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 活跃度
- 停滞
- 描述清晰度
- 描述清楚
- 新手友好度
- 35/100