ballerina-platform / ballerina-dev-tools

Ballerina Developer Tooling
http://ballerina.io
Apache License 2.0
114 stars 42 forks source link

[Bug]: `bal pack` crashes when missing `dependency` keys in CompilerPlugin.toml file #301

Open gabilang opened 1 year ago

gabilang commented 1 year ago

Description

$Subject Execution bal pack crashes when the CompilerPlugin.toml file has missing dependency keys.

output:

[2023-09-19 14:20:35,013] SEVERE {b7a.log.crash} - Index 0 out of bounds for length 0 
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
        at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
        at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
        at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
        at java.base/java.util.Objects.checkIndex(Objects.java:361)
        at java.base/java.util.ArrayList.get(ArrayList.java:427)
        at io.ballerina.projects.JBallerinaBalaWriter.addCompilerPlugin(JBallerinaBalaWriter.java:121)
        at io.ballerina.projects.BalaWriter.populateBalaArchive(BalaWriter.java:135)
        at io.ballerina.projects.BalaWriter.write(BalaWriter.java:108)
        at io.ballerina.projects.JBallerinaBackend.emitBala(JBallerinaBackend.java:241)
        at io.ballerina.projects.JBallerinaBackend.emit(JBallerinaBackend.java:218)
        at io.ballerina.cli.task.CreateBalaTask.execute(CreateBalaTask.java:79)
        at io.ballerina.cli.TaskExecutor.executeTasks(TaskExecutor.java:40)
        at io.ballerina.cli.cmd.PackCommand.execute(PackCommand.java:256)
        at java.base/java.util.Optional.ifPresent(Optional.java:178)
        at io.ballerina.cli.launcher.Main.main(Main.java:58)

Steps to Reproduce

Add a CompilerPlugin.toml file (empty or with plugin key) to a Ballerina project and execute bal pack command

sample: CompilerPlugin.toml

[plugin]
id = "openapi-validator"
class = "io.ballerina.openapi.Validator"

Affected Version(s)

No response

OS, DB, other environment details and versions

No response

Related area

-> API Docs

Related issue(s) (optional)

No response

Suggested label(s) (optional)

No response

Suggested assignee(s) (optional)

No response