proguard icon indicating copy to clipboard operation
proguard copied to clipboard

java.lang.NullPointerException: Cannot throw exception because "null" is null

Open hehua2008 opened this issue 1 year ago • 1 comments

proguard version: "7.4.1"

java.lang.NullPointerException: Cannot throw exception because "null" is null at com.hym.douyinparser.data.ParserDataState$streamData$2.invokeSuspend(Unknown Source) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

Enable Proguard:

package com.hym.douyinparser.data;

import com.hym.douyinparser.a.B;
import com.hym.douyinparser.a.bT;
import com.hym.douyinparser.network.NetworkService;
import java.util.List;
import java.util.ListIterator;
import java.util.NoSuchElementException;
import kotlin.Metadata;
import kotlin.ResultKt;
import kotlin.Unit;
import kotlin.coroutines.Continuation;
import kotlin.coroutines.intrinsics.IntrinsicsKt;
import kotlin.coroutines.jvm.internal.DebugMetadata;
import kotlin.coroutines.jvm.internal.SuspendLambda;
import kotlin.jvm.functions.Function2;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
import kotlin.text.StringsKt;
import okhttp3.HttpUrl;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

/* JADX INFO: Access modifiers changed from: package-private */
@Metadata(mv = {1, 8, 0}, k = 3, xi = 48, d1 = {"��\f\n��\n\u0002\u0018\u0002\n��\n\u0002\u0018\u0002\u0010��\u001a\u0004\u0018\u00010\u00012\b\u0010\u0002\u001a\u0004\u0018\u00010\u0003H\u008a@"}, d2 = {"<anonymous>", "Lcom/hym/douyinparser/model/StreamData;", "it", "Lokhttp3/HttpUrl;"})
@DebugMetadata(f = "ParserDataState.kt", l = {82}, i = {}, s = {}, n = {}, m = "invokeSuspend", c = "com.hym.douyinparser.data.ParserDataState$streamData$2")
@SourceDebugExtension({"SMAP\nParserDataState.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ParserDataState.kt\ncom/hym/douyinparser/data/ParserDataState$streamData$2\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,249:1\n451#2,6:250\n*S KotlinDebug\n*F\n+ 1 ParserDataState.kt\ncom/hym/douyinparser/data/ParserDataState$streamData$2\n*L\n80#1:250,6\n*E\n"})
/* loaded from: DouyinParser-1.0.0.jar:com/hym/douyinparser/data/ParserDataState$streamData$2.class */
public final class ParserDataState$streamData$2 extends SuspendLambda implements Function2<HttpUrl, Continuation<? super B>, Object> {
    int label;
    /* synthetic */ Object L$0;
    final /* synthetic */ a this$0;

    /* JADX INFO: Access modifiers changed from: package-private */
    /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
    public ParserDataState$streamData$2(a aVar, Continuation<? super ParserDataState$streamData$2> continuation) {
        super(2, continuation);
        this.this$0 = aVar;
    }

    @NotNull
    public final Continuation<Unit> create(@Nullable Object obj, @NotNull Continuation<?> continuation) {
        Continuation<Unit> parserDataState$streamData$2 = new ParserDataState$streamData$2(this.this$0, continuation);
        parserDataState$streamData$2.L$0 = obj;
        return parserDataState$streamData$2;
    }

    @Nullable
    public final Object invoke(@Nullable HttpUrl httpUrl, @Nullable Continuation<? super B> continuation) {
        return create(httpUrl, continuation).invokeSuspend(Unit.INSTANCE);
    }

    /* JADX WARN: Type inference failed for: r0v2, types: [int, java.lang.Exception] */
    @Nullable
    public final Object invokeSuspend(@NotNull Object obj) {
        Object obj2;
        boolean z;
        NetworkService networkService;
        Object coroutine_suspended = IntrinsicsKt.getCOROUTINE_SUSPENDED();
        ?? r0 = this.label;
        try {
            switch (r0) {
                case 0:
                    ResultKt.throwOnFailure(obj);
                    HttpUrl httpUrl = (HttpUrl) this.L$0;
                    a.a.a.a("ParserDataState", "streamData: " + httpUrl);
                    Intrinsics.checkNotNull(httpUrl);
                    List pathSegments = httpUrl.pathSegments();
                    ListIterator listIterator = pathSegments.listIterator(pathSegments.size());
                    while (listIterator.hasPrevious()) {
                        Object previous = listIterator.previous();
                        if (StringsKt.isBlank((String) previous)) {
                            z = false;
                            continue;
                        } else {
                            z = true;
                            continue;
                        }
                        if (z) {
                            long parseLong = Long.parseLong((String) previous);
                            String queryParameter = httpUrl.queryParameter("sec_user_id");
                            Intrinsics.checkNotNull(queryParameter);
                            networkService = this.this$0.b;
                            this.label = 1;
                            obj2 = networkService.getWebCastRoom(parseLong, queryParameter, 1128, 0, 1, (Continuation) this);
                            if (obj2 == coroutine_suspended) {
                                return coroutine_suspended;
                            }
                        }
                    }
                    throw new NoSuchElementException("List contains no element matching the predicate.");
                case 1:
                    ResultKt.throwOnFailure(obj);
                    obj2 = obj;
                    break;
                default:
                    throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
            }
            bT bTVar = (bT) obj2;
            throw null;
        } catch (Exception e) {
            r0.printStackTrace();
            return null;
        }
    }
}

Disable Proguard:

package com.hym.douyinparser.data;

import android.util.Log;
import com.hym.douyinparser.model.StreamData;
import com.hym.douyinparser.model.WebCastRoom;
import com.hym.douyinparser.network.NetworkService;
import com.hym.douyinparser.util.ParseUtils;
import java.util.List;
import java.util.ListIterator;
import java.util.NoSuchElementException;
import kotlin.Metadata;
import kotlin.ResultKt;
import kotlin.Unit;
import kotlin.coroutines.Continuation;
import kotlin.coroutines.intrinsics.IntrinsicsKt;
import kotlin.coroutines.jvm.internal.DebugMetadata;
import kotlin.coroutines.jvm.internal.SuspendLambda;
import kotlin.jvm.functions.Function2;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
import kotlin.text.StringsKt;
import okhttp3.HttpUrl;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

/* JADX INFO: Access modifiers changed from: package-private */
/* compiled from: ParserDataState.kt */
@Metadata(mv = {Log.LOG_ID_RADIO, 8, Log.LOG_ID_MAIN}, k = 3, xi = 48, d1 = {"��\f\n��\n\u0002\u0018\u0002\n��\n\u0002\u0018\u0002\u0010��\u001a\u0004\u0018\u00010\u00012\b\u0010\u0002\u001a\u0004\u0018\u00010\u0003H\u008a@"}, d2 = {"<anonymous>", "Lcom/hym/douyinparser/model/StreamData;", "it", "Lokhttp3/HttpUrl;"})
@DebugMetadata(f = "ParserDataState.kt", l = {82}, i = {}, s = {}, n = {}, m = "invokeSuspend", c = "com.hym.douyinparser.data.ParserDataState$streamData$2")
@SourceDebugExtension({"SMAP\nParserDataState.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ParserDataState.kt\ncom/hym/douyinparser/data/ParserDataState$streamData$2\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,249:1\n451#2,6:250\n*S KotlinDebug\n*F\n+ 1 ParserDataState.kt\ncom/hym/douyinparser/data/ParserDataState$streamData$2\n*L\n80#1:250,6\n*E\n"})
/* loaded from: DouyinParser-1.0.0-92a8b259454deb96fdd12d87121ebc.jar:com/hym/douyinparser/data/ParserDataState$streamData$2.class */
public final class ParserDataState$streamData$2 extends SuspendLambda implements Function2<HttpUrl, Continuation<? super StreamData>, Object> {
    int label;
    /* synthetic */ Object L$0;
    final /* synthetic */ ParserDataState this$0;

    /* JADX INFO: Access modifiers changed from: package-private */
    /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
    public ParserDataState$streamData$2(ParserDataState $receiver, Continuation<? super ParserDataState$streamData$2> continuation) {
        super(2, continuation);
        this.this$0 = $receiver;
    }

    @NotNull
    public final Continuation<Unit> create(@Nullable Object value, @NotNull Continuation<?> continuation) {
        Continuation<Unit> parserDataState$streamData$2 = new ParserDataState$streamData$2(this.this$0, continuation);
        parserDataState$streamData$2.L$0 = value;
        return parserDataState$streamData$2;
    }

    @Nullable
    public final Object invoke(@Nullable HttpUrl p1, @Nullable Continuation<? super StreamData> continuation) {
        return create(p1, continuation).invokeSuspend(Unit.INSTANCE);
    }

    @Nullable
    public final Object invokeSuspend(@NotNull Object $result) {
        StreamData streamData;
        Object obj;
        boolean z;
        NetworkService networkService;
        Object coroutine_suspended = IntrinsicsKt.getCOROUTINE_SUSPENDED();
        try {
            switch (this.label) {
                case Log.LOG_ID_MAIN /* 0 */:
                    ResultKt.throwOnFailure($result);
                    HttpUrl it = (HttpUrl) this.L$0;
                    Log.d("ParserDataState", "streamData: " + it);
                    Intrinsics.checkNotNull(it);
                    List $this$last$iv = it.pathSegments();
                    ListIterator iterator$iv = $this$last$iv.listIterator($this$last$iv.size());
                    while (iterator$iv.hasPrevious()) {
                        Object element$iv = iterator$iv.previous();
                        String path = (String) element$iv;
                        if (StringsKt.isBlank(path)) {
                            z = false;
                            continue;
                        } else {
                            z = true;
                            continue;
                        }
                        if (z) {
                            long roomId = Long.parseLong((String) element$iv);
                            String secUserId = it.queryParameter("sec_user_id");
                            Intrinsics.checkNotNull(secUserId);
                            networkService = this.this$0.networkService;
                            this.label = 1;
                            obj = NetworkService.DefaultImpls.getWebCastRoom$default(networkService, roomId, secUserId, 0, 0, 0, (Continuation) this, 28, null);
                            if (obj == coroutine_suspended) {
                                return coroutine_suspended;
                            }
                        }
                    }
                    throw new NoSuchElementException("List contains no element matching the predicate.");
                case Log.LOG_ID_RADIO /* 1 */:
                    ResultKt.throwOnFailure($result);
                    obj = $result;
                    break;
                default:
                    throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
            }
            WebCastRoom webCastRoom = (WebCastRoom) obj;
            WebCastRoom.Data.Room room = webCastRoom.getDataContent().getRoom();
            Object fromJson = ParseUtils.INSTANCE.getGSON().fromJson(room.getStreamUrl().getLiveCoreSdkData().getPullData().getStreamData(), StreamData.class);
            StreamData $this$invokeSuspend_u24lambda_u241 = (StreamData) fromJson;
            $this$invokeSuspend_u24lambda_u241.setOwner(room.getOwner());
            StreamData streamData2 = (StreamData) fromJson;
            streamData = streamData2;
        } catch (Exception e) {
            e.printStackTrace();
            streamData = null;
        }
        return streamData;
    }
}

hehua2008 avatar Nov 30 '23 12:11 hehua2008

line " throw null;" is very strange!

hehua2008 avatar Nov 30 '23 12:11 hehua2008