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: screen shot 2016-03-17 at 4 00 49 pm

screen shot 2016-03-17 at 4 00 36 pm screen shot 2016-03-17 at 4 00 44 pm

screen shot 2016-03-17 at 4 03 30 pm

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 3
  • Comments: 58 (28 by maintainers)

Most upvoted comments

@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