Мы пытаемся сохранить данные размером 60-70 МБ в нескольких областях. Если на диске недостаточно места, мы можем удалить одну из областей.
Как определить, что ошибка, вызванная областью, связана с нехваткой места на диске.
Попытка эмулировать мало места на диске. Я получил следующую трассировку стека.
W/System.err: Caused by: io.realm.exceptions.RealmError: Unrecoverable error. write(): failed: No space left on device in /Users/Nabil/Dev/realm/master/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101
at io.realm.internal.OsSharedRealm.nativeGetSharedRealm(Native Method)
at io.realm.internal.OsSharedRealm.<init>(OsSharedRealm.java:171)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:241)
W/System.err: at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:231)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:319)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:282)
at io.realm.Realm.getInstance(Realm.java:378)
Фрагмент для проверки:
try {
// Insert data to realm
} catch (RealmError ex) {
String detailMessage = ex.getMessage();
if (detailMessage != null && detailMessage.contains("write()")
&& detailMessage.contains("No space left on device")) {
// Time to delete old realm
} else {
throw ex;
}
}