AndroidVideoCache icon indicating copy to clipboard operation
AndroidVideoCache copied to clipboard

ProxyCacheException: offset < 0: -2147476036

Open zhuxing1990 opened this issue 4 years ago • 1 comments

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) 

zhuxing1990 avatar Jun 10 '21 11:06 zhuxing1990

备注:缓存失败的原因是 文件的类型 (long) 被强制转换成了(int)类型 ,int类型的长度不够,从而导致文件缓冲失败。

zhuxing1990 avatar Jun 10 '21 11:06 zhuxing1990