Description
Goal
Sharing a crash log (as reported by Crashlytics) on specific devices.
Expected Results
To verify if my current API usage is correct and hopefully find a resolution.
Actual Results
Fatal Exception: io.realm.exceptions.RealmError: Unrecoverable error. Permission denied in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_SharedRealm.cpp line 92
at io.realm.internal.SharedRealm.nativeGetSharedRealm(SharedRealm.java)
at io.realm.internal.SharedRealm.getInstance(SharedRealm.java:205)
at io.realm.internal.SharedRealm.getInstance(SharedRealm.java:182)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:124)
at io.realm.Realm.getInstance(Realm.java:227)
at com.project.base.BaseRealm.(BaseRealm.java)
at com.project.helpers.RepoImpl.(RepoImpl.java)
at com.project.MainActivity.initialiseHelpers(MainActivity.java:272)
at com.project.MainActivity.onCreate(MainActivity.java:162)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2937)
at android.app.ActivityThread.access$1900(ActivityThread.java:174)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1403)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5752)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(NativeStart.java)
Code:
public class BaseRealm {
private RealmConfiguration config = new RealmConfiguration.Builder().build();
protected Realm mRealm = Realm.getInstance(config);
}
public class RepoImpl extends BaseRealm implements RepoInterface {
@Override
public void add(String item) {
MyPOJO data = new MyPOJO();
data.setItem(item);
data.setTimestamp(System.currentTimeMillis());
mRealm.beginTransaction();
mRealm.copyToRealmOrUpdate(data);
mRealm.commitTransaction();
}
@Override
public int getResultCount() {
return mRealm.where(MyPOJO.class).findAllSorted("timestamp", Sort.DESCENDING).size();
}
@Override
public MyPOJO getItemObjectByIndex(int index) {
try {
return mRealm.where(MyPOJO.class).findAllSorted("timestamp", Sort.DESCENDING).get(index);
} catch (Exception e) {
return null;
}
}
@Override
public void remove(int position) {
mRealm.beginTransaction();
mRealm.where(MyPOJO.class).findAllSorted("timestamp", Sort.DESCENDING).deleteFromRealm(position);
mRealm.commitTransaction();
}
@Override
public void closeRealm() {
mRealm.close();
}
@Override
public Realm getRealm() {
return mRealm;
}
@Override
public void clearRealm() {
getRealm().beginTransaction();
getRealm().deleteAll();
getRealm().commitTransaction();
}
The RepoImpl instance is being created from two separate classes and the realm instance is being closed only when onDestroy() is triggered in each of the classes. clearRealm() is currently never called.
Realm version(s): 2.2.1
Android Studio version: 2.2.3
Which Android version and device: Samsung SM-A500F (Android 6.0) and Lenovo S1a40 (Android 4.4.4)
It's seemingly working well on other devices.
Activity
Zhuinden commentedon Jan 1, 2017
SNAPSHOT 2.2.2 fixes #3629 which might fix this?
sabergeek commentedon Jan 2, 2017
@Zhuinden I hope so! :) When is the release version of 2.2.2 expected to be out?
Zhuinden commentedon Jan 2, 2017
Personally, I'm surprised that it still isn't.
kneth commentedon Jan 3, 2017
@sabergeek Can you verify that SNAPSHOT 2.2.2 works for you?
sabergeek commentedon Jan 3, 2017
@kneth I certainly would, but I don't have access to those specific devices, nor emulators.
kneth commentedon Jan 4, 2017
@sabergeek We will release a new version soon. I hope that you will have the time to upgrade your app and monitor Crashlytics to see if the crash still occurs.
sabergeek commentedon Jan 4, 2017
@kneth I will push an update with Snapshot 2.2.2 and report back. Is there anything else I should be aware of/ expect with this snapshot (known bugs)?
Zhuinden commentedon Jan 4, 2017
@sabergeek it has less bugs than 2.2.1, and I do not know of any new bugs that were introduced.
kneth commentedon Jan 4, 2017
You can either use the snapshot or wait a day (or two) to use a proper release.
127 remaining items