Scarlet icon indicating copy to clipboard operation
Scarlet copied to clipboard

Moshi Adapter Update Request (ArrayIndexOutOfBoundsException on Android Marshmallow)

Open Chesteer89 opened this issue 6 years ago • 0 comments

Hi!

Please update following dependencies :

moshi = 'com.squareup.moshi:moshi-kotlin:1.8.0'
moshiCodeGen = 'com.squareup.moshi:moshi-kotlin-codegen:1.8.0'

okHttp = 'com.squareup.okhttp3:okhttp:3.14.2'
okHttpServerSentEvent = 'com.squareup.okhttp3:okhttp-sse:3.14.2'
okHttpLoggingInterceptor = 'com.squareup.okhttp3:logging-interceptor:3.14.2'
okio = 'com.squareup.okio:okio:1.17.4'
mockWebServer = 'com.squareup.okhttp3:mockwebserver:3.14.2'

There's a bug in Okio library that appears in @Send methods on Android Marshmallow.

GsonMessageAdapter works fine.

Stacktrace:

07-10 13:21:34.438 6967-7009/? A/art: art/runtime/thread.cc:1344] Throwing new exception 'length=996; index=1015' with unexpected pending exception: java.lang.ArrayIndexOutOfBoundsException: length=996; index=1015
07-10 13:21:34.438 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void test.PingConnection.confirm() (PingConnection.kt:73)
07-10 13:21:34.438 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void test.PingConnection$connectToPing$1.invoke(test.Ping) (PingConnection.kt:83)
07-10 13:21:34.438 6967-7009/? A/art: art/runtime/thread.cc:1344]   at java.lang.Object test.PingConnection$connectToPing$1.invoke(java.lang.Object) (PingConnection.kt:49)
07-10 13:21:34.438 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void io.reactivex.rxkotlin.SubscribersKt$sam$io_reactivex_functions_Consumer$0.accept(java.lang.Object) (subscribers.kt:-1)
07-10 13:21:34.438 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void io.reactivex.internal.subscribers.LambdaSubscriber.onNext(java.lang.Object) (LambdaSubscriber.java:65)
07-10 13:21:34.438 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void io.reactivex.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync() (FlowableObserveOn.java:407)
07-10 13:21:34.438 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void io.reactivex.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run() (FlowableObserveOn.java:176)
07-10 13:21:34.438 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void io.reactivex.internal.schedulers.ScheduledRunnable.run() (ScheduledRunnable.java:66)
07-10 13:21:34.439 6967-7009/? A/art: art/runtime/thread.cc:1344]   at java.lang.Object io.reactivex.internal.schedulers.ScheduledRunnable.call() (ScheduledRunnable.java:57)
07-10 13:21:34.439 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void java.util.concurrent.FutureTask.run() (FutureTask.java:237)
07-10 13:21:34.439 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run() (ScheduledThreadPoolExecutor.java:269)
07-10 13:21:34.439 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) (ThreadPoolExecutor.java:1113)
07-10 13:21:34.439 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void java.util.concurrent.ThreadPoolExecutor$Worker.run() (ThreadPoolExecutor.java:588)
07-10 13:21:34.439 6967-7009/? A/art: art/runtime/thread.cc:1344]   at void java.lang.Thread.run() (Thread.java:818)

PS: You'll need to update demo build.gradle and add:

compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }

Chesteer89 avatar Jul 10 '19 11:07 Chesteer89