Description:
I am trying to write a gRPC remote function like below,
remote function RouteChat(RouteGuideRouteNoteCaller caller, stream<RouteNote, grpc:Error?> routeNoteStream) returns error? {
check from var note in routeNoteStream
do {
string key = string `${note.location.longitude} ${note.location.latitude}`;
RouteNote[]? routeNotes = routeNotesMap[key];
if routeNotes is RouteNote[] {
foreach var item in routeNotes {
check caller->sendRouteNote(item);
}
routeNotes.push(note);
} else {
routeNotesMap[key] = [note];
}
};
}
But I am getting the following NPE while building the code.
[2022-08-08 12:16:02,362] SEVERE {b7a.log.crash} - null
java.lang.NullPointerException
at org.wso2.ballerinalang.compiler.bir.optimizer.BIROptimizer$RHSTempVarOptimizer.visit(BIROptimizer.java:169)
at org.wso2.ballerinalang.compiler.bir.model.BIRNode$BIRBasicBlock.accept(BIRNode.java:465)
at org.wso2.ballerinalang.compiler.bir.optimizer.BIROptimizer$RHSTempVarOptimizer.lambda$visit$4(BIROptimizer.java:131)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.wso2.ballerinalang.compiler.bir.optimizer.BIROptimizer$RHSTempVarOptimizer.visit(BIROptimizer.java:131)
at org.wso2.ballerinalang.compiler.bir.model.BIRNode$BIRFunction.accept(BIRNode.java:423)
at org.wso2.ballerinalang.compiler.bir.optimizer.BIROptimizer$RHSTempVarOptimizer.lambda$visit$1(BIROptimizer.java:108)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.wso2.ballerinalang.compiler.bir.optimizer.BIROptimizer$RHSTempVarOptimizer.visit(BIROptimizer.java:108)
at org.wso2.ballerinalang.compiler.bir.model.BIRNode$BIRPackage.accept(BIRNode.java:89)
at org.wso2.ballerinalang.compiler.bir.optimizer.BIROptimizer.optimizePackage(BIROptimizer.java:84)
at org.wso2.ballerinalang.compiler.bir.BIRGen.genBIR(BIRGen.java:273)
at io.ballerina.projects.internal.CompilerPhaseRunner.birGen(CompilerPhaseRunner.java:220)
at io.ballerina.projects.internal.CompilerPhaseRunner.performBirGenPhases(CompilerPhaseRunner.java:157)
at io.ballerina.projects.ModuleContext.generateCodeInternal(ModuleContext.java:447)
at io.ballerina.projects.ModuleCompilationState$4.generatePlatformSpecificCode(ModuleCompilationState.java:132)
at io.ballerina.projects.ModuleContext.generatePlatformSpecificCode(ModuleContext.java:381)
at io.ballerina.projects.JBallerinaBackend.performCodeGen(JBallerinaBackend.java:165)
at io.ballerina.projects.JBallerinaBackend.<init>(JBallerinaBackend.java:134)
at io.ballerina.projects.JBallerinaBackend.lambda$from$0(JBallerinaBackend.java:112)
at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1134)
at io.ballerina.projects.PackageCompilation.getCompilerBackend(PackageCompilation.java:167)
at io.ballerina.projects.JBallerinaBackend.from(JBallerinaBackend.java:111)
at io.ballerina.cli.task.CompileTask.execute(CompileTask.java:142)
at io.ballerina.cli.TaskExecutor.executeTasks(TaskExecutor.java:40)
at io.ballerina.cli.cmd.BuildCommand.execute(BuildCommand.java:249)
at java.base/java.util.Optional.ifPresent(Optional.java:183)
at io.ballerina.cli.launcher.Main.main(Main.java:51)
Description: I am trying to write a gRPC remote function like below,
But I am getting the following NPE while building the code.