Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

java.lang.ClassCastException: android.system.UnixSocketAddress cannot be cast to java.net.InetSocketAddress #10303

Closed
ivovandongen opened this issue Oct 27, 2017 · 3 comments
Labels
Android Mapbox Maps SDK for Android crash

Comments

@ivovandongen
Copy link
Contributor

ivovandongen commented Oct 27, 2017

Platform: Android (Google Pixel Android 8.0.0)
Mapbox SDK version: master

Steps to trigger behavior

  1. Open SimpleMapActivity
  2. Move camera to zoomlevel: 10 tilt: 20
  3. animate repeatedly with mapboxMap.animateCamera(CameraUpdateFactory.scrollBy(200, 200), 20,...)

Expected behavior

Keeps panning

Actual behavior

Crashes with:

10-27 12:50:39.856 32683-569/com.mapbox.mapboxsdk.testapp E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
                                                                            Process: com.mapbox.mapboxsdk.testapp, PID: 32683
                                                                            java.lang.ClassCastException: android.system.UnixSocketAddress cannot be cast to java.net.InetSocketAddress
                                                                                at libcore.io.IoBridge.getLocalInetSocketAddress(IoBridge.java:700)
                                                                                at libcore.io.IoBridge.connectDetail(IoBridge.java:197)
                                                                                at libcore.io.IoBridge.connect(IoBridge.java:138)
                                                                                at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:129)
                                                                                at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:356)
                                                                                at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
                                                                                at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
                                                                                at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
                                                                                at java.net.Socket.connect(Socket.java:616)
                                                                                at okhttp3.internal.platform.AndroidPlatform.connectSocket(AndroidPlatform.java:69)
                                                                                at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:238)
                                                                                at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:158)
                                                                                at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:256)
                                                                                at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:134)
                                                                                at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:113)
                                                                                at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
                                                                                at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
                                                                                at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
                                                                                at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
                                                                                at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
                                                                                at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
                                                                                at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
                                                                                at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
                                                                                at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
                                                                                at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
                                                                                at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
                                                                                at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
                                                                                at okhttp3.RealCall$AsyncCall.execute(RealCall.java:147)
                                                                                at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
                                                                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
                                                                                at java.lang.Thread.run(Thread.java:764)

Possibly related to https://issuetracker.google.com/issues/63649622

@ivovandongen ivovandongen added Android Mapbox Maps SDK for Android crash labels Oct 27, 2017
@ivovandongen
Copy link
Contributor Author

Seems fixed on the upcoming OKHttp 3.10.0 release: square/okhttp#3438

@tobrun
Copy link
Member

tobrun commented Nov 2, 2017

Since there is no timeline on that release, I'm looking into porting this workaround for now.

cc @zugaldia

@tobrun tobrun added this to the android-v5.2.0 milestone Nov 2, 2017
@Guardiola31337
Copy link
Contributor

Retested OP and the workaround seems to be working 👌 (not seeing the crash described).

Follow up ticket to update OkHttp and remove the workaround 👉 #10369

Closing.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Android Mapbox Maps SDK for Android crash
Projects
None yet
Development

No branches or pull requests

3 participants