danikula / danikula/AndroidVideoCache

ProxyCacheException: offset < 0: -2147476036

未关闭
#301 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。