Skip to content

Commit b54d551

Browse files
author
Robert Henigan
authored
Merge pull request #1660 from smartdevicelink/bugfix/class_cast_exp_rs
Attempt to fix unreproducible ClassCastException
2 parents a284a56 + e1e485c commit b54d551

1 file changed

Lines changed: 18 additions & 6 deletions

File tree

android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3124,7 +3124,9 @@ public boolean removeSession(Long sessionId) {
31243124
int location = sessionIds.indexOf(sessionId);
31253125
if (location >= 0) {
31263126
Long removedSessionId = sessionIds.remove(location);
3127-
registeredTransports.remove(sessionId.intValue());
3127+
synchronized (TRANSPORT_LOCK) {
3128+
registeredTransports.remove(sessionId.intValue());
3129+
}
31283130
return removedSessionId != null;
31293131
} else {
31303132
return false;
@@ -3262,11 +3264,21 @@ protected void unregisterAllTransports(int sessionId) {
32623264
* @return
32633265
*/
32643266
private TransportType getCompatPrimaryTransport() {
3265-
if (this.registeredTransports != null && this.registeredTransports.size() > 0) {
3266-
List<TransportType> transportTypes = this.registeredTransports.valueAt(0);
3267-
if (transportTypes != null) {
3268-
if (transportTypes.get(0) != null) {
3269-
return transportTypes.get(0);
3267+
synchronized (TRANSPORT_LOCK) {
3268+
if (this.registeredTransports != null && this.registeredTransports.size() > 0) {
3269+
Object obj = this.registeredTransports.valueAt(0);
3270+
//Lint shows to ignore this call, but there are crash logs that show otherwise
3271+
if (obj != null && obj instanceof List) {
3272+
try {
3273+
List<TransportType> transportTypes = (List<TransportType>) obj;
3274+
if (transportTypes != null) {
3275+
if (transportTypes.get(0) != null) {
3276+
return transportTypes.get(0);
3277+
}
3278+
}
3279+
} catch (ClassCastException e) {
3280+
DebugTool.logError(TAG, "Unable to cast transport list", e);
3281+
}
32703282
}
32713283
}
32723284
}

0 commit comments

Comments
 (0)