ballerina-lang icon indicating copy to clipboard operation
ballerina-lang copied to clipboard

[Bug]: NPE for query with check

Open f-schnabel opened this issue 1 year ago • 0 comments
trafficstars

Description

Stacktrace:

[2024-07-28 00:40:45,233] SEVERE {b7a.log.crash} - Cannot invoke "java.util.List.stream()" because "equivalentErrorTypes" is null 
java.lang.NullPointerException: Cannot invoke "java.util.List.stream()" because "equivalentErrorTypes" is null
        at org.wso2.ballerinalang.compiler.desugar.Desugar.getSafeErrorAssignment(Desugar.java:9745)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.visitCheckAndCheckPanicExpr(Desugar.java:8719)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.visit(Desugar.java:8663)
        at org.wso2.ballerinalang.compiler.tree.expressions.BLangCheckedExpr.accept(BLangCheckedExpr.java:65)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.rewriteExpr(Desugar.java:9263)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.visit(Desugar.java:1432)
        at org.wso2.ballerinalang.compiler.tree.BLangSimpleVariable.accept(BLangSimpleVariable.java:54)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.rewrite(Desugar.java:9238)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.visit(Desugar.java:1569)
        at org.wso2.ballerinalang.compiler.tree.statements.BLangSimpleVariableDef.accept(BLangSimpleVariableDef.java:50)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.rewrite(Desugar.java:9238)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.rewrite(Desugar.java:9276)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.rewriteStmt(Desugar.java:9282)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.visit(Desugar.java:1335)
        at org.wso2.ballerinalang.compiler.tree.BLangBlockFunctionBody.accept(BLangBlockFunctionBody.java:60)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.rewrite(Desugar.java:9238)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.visit(Desugar.java:1381)
        at org.wso2.ballerinalang.compiler.tree.BLangFunction.accept(BLangFunction.java:77)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.rewrite(Desugar.java:9238)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.visit(Desugar.java:832)
        at org.wso2.ballerinalang.compiler.tree.BLangPackage.accept(BLangPackage.java:167)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.rewrite(Desugar.java:9238)
        at org.wso2.ballerinalang.compiler.desugar.Desugar.perform(Desugar.java:482)
        at io.ballerina.projects.internal.CompilerPhaseRunner.desugar(CompilerPhaseRunner.java:212)
        at io.ballerina.projects.internal.CompilerPhaseRunner.performBirGenPhases(CompilerPhaseRunner.java:148)
        at io.ballerina.projects.ModuleContext.generateCodeInternal(ModuleContext.java:454)
        at io.ballerina.projects.ModuleCompilationState$4.generatePlatformSpecificCode(ModuleCompilationState.java:132)
        at io.ballerina.projects.ModuleContext.generatePlatformSpecificCode(ModuleContext.java:387)
        at io.ballerina.projects.JBallerinaBackend.performCodeGen(JBallerinaBackend.java:173)
        at io.ballerina.projects.JBallerinaBackend.<init>(JBallerinaBackend.java:142)
        at io.ballerina.projects.JBallerinaBackend.lambda$from$0(JBallerinaBackend.java:126)
        at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
        at io.ballerina.projects.PackageCompilation.getCompilerBackend(PackageCompilation.java:179)
        at io.ballerina.projects.JBallerinaBackend.from(JBallerinaBackend.java:125)
        at io.ballerina.projects.JBallerinaBackend.from(JBallerinaBackend.java:113)
        at io.ballerina.cli.task.CompileTask.execute(CompileTask.java:219)
        at io.ballerina.cli.TaskExecutor.executeTasks(TaskExecutor.java:40)
        at io.ballerina.cli.cmd.RunCommand.execute(RunCommand.java:254)
        at java.base/java.util.Optional.ifPresent(Optional.java:178)
        at io.ballerina.cli.launcher.Main.main(Main.java:58)

ERROR [itsm_usecase:(1:1,1:1)] Compilation failed due to: Cannot invoke "java.util.List.stream()" because "equivalentErrorTypes" is null

Steps to Reproduce

The following snippet produces the NPE:

public function main() returns error? {
    stream<record {}, error?> streamName = new;
    record {}[] cases = check from undefinedType entry in streamName
        select entry;
}

Real world example was using salesforce->query() which returns this type of stream.

Affected Version(s)

No response

OS, DB, other environment details and versions

No response

Related area

-> Compilation

Related issue(s) (optional)

No response

Suggested label(s) (optional)

No response

Suggested assignee(s) (optional)

No response

f-schnabel avatar Jul 27 '24 22:07 f-schnabel