Я получил это "интересное" исключение в моем логе ошибок сервера. Мое приложение отправляет исключения и ошибки "wtf" на мой центральный сервер, поэтому у меня нет большой информации о том, что точно произошло. Я просто знаю, что это произошло, и я понятия не имею.
StackTrace:
java.io.IOException: Math result not representable
at org.apache.harmony.luni.platform.OSFileSystem.writeImpl(Native Method)
at org.apache.harmony.luni.platform.OSFileSystem.write(OSFileSystem.java:129)
at java.io.FileOutputStream.write(FileOutputStream.java:297)
at net.jav.apps.romeolive.RomeoInterface.fetchBinaryToFile(RomeoInterface.java:299)
at net.jav.apps.romeolive.HeartBeatService$_fetchPic.run(HeartBeatService.java:327)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
at java.lang.Thread.run(Thread.java:1096)
Код вместо net.jav.apps.romeolive.RomeoInterface:
</p>
<pre><code> byte[] ret=fetchBinary(fullurl);
if (ret==null) return false;
try
{
FileOutputStream os=new FileOutputStream(getCacheFileName(type,fullurl));
os.write(ret, 0, ret.length);
"Ошибка" # 299: os.write ()
fetchBinary (url) извлекает некоторый двоичный файл (миниатюру jpg) с веб-сервера и возвращает его в виде байта [], или NULL, если не найден / ошибка.
getCacheFileName (type, fullurl) возвращает cacheDir () плюс тип плюс очищенный fullurl (удаляя косую черту, используйте только локальную часть url).
Итак, что именно не получается, так это ... Попытка записать существующий эскиз jpg byte [] в идеально созданное имя файла в cacheDir ().
Устройство, на котором это исключение появилось (ONCE только до сих пор): GT-I9000 @ samsung / GT-I9000 / GT-I9000 / GT-I9000: 2.2.1 / FROYO / XXJPY: пользовательские / клавиши разблокировки
Кто-нибудь имел этот "Математический результат не может быть представлен" как IOException?
Я бы очень хотел прибить эту штуку;) Google и Stackoverflow не обнаружили ничего полезного или даже связанного.
Большое спасибо,
Оливер