danikula / danikula/AndroidVideoCache
ProxyCacheException: offset < 0: -2147476036
- Ngôn ngữ chính
- Java
- Star
- 5.5k
- Fork
- 1.2k
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
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)
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu với com.danikula.videocache.file.FileCache.available tại FileCache.java:46 và FileCache.append ở các dòng 69-73, sau đó lần theo ProxyCache.readSource tại dòng 132. Tái hiện lỗi offset đã được báo cáo và xác minh rằng việc nối thêm vào cache không còn gây ra exception; issue có kèm thay đổi được đề xuất cho available() để đối chiếu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- android, java
- Lĩnh vực
- mobile-dev
- Loại issue
- Lỗi
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 35/100