realm-java: RealmError: Unrecoverable error. Failure when converting short string to UTF-16
Actual Results
In Realm v0.88.2 - 1
Fatal Exception: io.realm.exceptions.RealmError: Unrecoverable error. Failure when converting short string to UTF-16 error_code = 4; retcode = 0; StringData.size = 16; StringData.data = in io_realm_internal_UncheckedRow.cpp line 138
at io.realm.internal.UncheckedRow.nativeGetString(UncheckedRow.java)
at io.realm.internal.UncheckedRow.getString(UncheckedRow.java:169)
at io.realm.RMessageViewRealmProxy.realmGet$key(RMessageViewRealmProxy.java:213)
at kr.co.vcnc.android.couple.model.viewmodel.RMessageView.getKey(RMessageView.java:115)
at kr.co.vcnc.android.couple.feature.chat.ChattingView.replaceData(ChattingView.java:540)
at kr.co.vcnc.android.couple.feature.chat.ChattingActivity.replace(ChattingActivity.java:486)
at kr.co.vcnc.android.couple.feature.chat.ChattingActivity.restoreWalkieTalkieButton(ChattingActivity.java)
In Realm v0.88.2 - 2
Fatal Exception: io.realm.exceptions.RealmError: Unrecoverable error. Failure when computing UTF-16 size error_code = 1; retcode = 0; StringData.size = 65535; StringData.data = ׁ in io_realm_internal_UncheckedRow.cpp line 138
at io.realm.internal.UncheckedRow.nativeGetString(UncheckedRow.java)
at io.realm.internal.UncheckedRow.getString(UncheckedRow.java:169)
at io.realm.RMessageRealmProxy.realmGet$content(RMessageRealmProxy.java:200)
at kr.co.vcnc.android.couple.between.api.model.chat.RMessage.getContent(RMessage.java:102)
at kr.co.vcnc.android.couple.between.api.model.chat.RMessage.toCObject(RMessage.java:124)
at kr.co.vcnc.android.couple.model.viewmodel.RMessageView.toCObject(RMessageView.java:140)
at kr.co.vcnc.android.couple.feature.chat.ChattingView$ChatAdapter.onBindViewHolder(ChattingView.java:476)
In Realm v0.87.4
Fatal Exception: io.realm.exceptions.RealmError: Unrecoverable error. Failure when converting short string to UTF-16 error_code = 1; retcode = 0; StringData.size = 22; StringData.data = 920000.jpg in io_realm_internal_UncheckedRow.cpp line 138
at io.realm.internal.UncheckedRow.nativeGetString(UncheckedRow.java)
at io.realm.internal.UncheckedRow.getString(UncheckedRow.java:169)
at io.realm.RMessageRealmProxy.getId(RMessageRealmProxy.java:197)
at kr.co.vcnc.android.couple.between.api.model.chat.RMessage.toCObject(RMessage.java:123)
at kr.co.vcnc.android.couple.model.viewmodel.RMessageView.toCObject(RMessageView.java:140)
at kr.co.vcnc.android.couple.feature.chat.ChattingView$ChatAdapter.onBindViewHolder(ChattingView.java:388)
at kr.co.vcnc.android.couple.feature.chat.ChattingView$ChatAdapter.onBindViewHolder(ChattingView.java:366)
Steps & Code to Reproduce
I can’t reproduce it, but crashes are collected from Fabric. According to information from Fabric, this happens when i try to read message id or message content from Realm. Message’s id is encoded as Base58, and Message’s content is a arbitrary strings.
Code Sample
RMessage.java
public static CMessage toCObject(RMessage rMessage) {
if(rMessage == null) {
return null;
}
CMessage cMessage = new CMessage();
cMessage.setCreatedTime(rMessage.getCreatedTime());
cMessage.setUpdatedTime(rMessage.getUpdatedTime());
if (rMessage.getAttachments() != null) {
ArrayList<CAttachment> attachments = new ArrayList<CAttachment>();
for (RAttachment i : rMessage.getAttachments()) {
if (i != null) {
attachments.add(RAttachment.toCObject(i));
}
}
cMessage.setAttachments(attachments);
}
cMessage.setContentType(rMessage.getContentType());
cMessage.setFrom(rMessage.getFrom());
cMessage.setId(rMessage.getId());
cMessage.setContent(rMessage.getContent());
return cMessage;
}
Version of Realm and tooling
Realm version(s): at leat from 0.87.4 ~ current
Which Android version and device:
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Reactions: 3
- Comments: 58 (28 by maintainers)
@MariusBoepple Yes, please send it to help@realm.io.
@Zhuinden There are no emojis in this String and i do not think that we have emojis elsewhere in the data received