Skip to content

Running compose up fails when OSType is not reported #464

Closed
@NicoKandut

Description

@NicoKandut

Hey, I have a case where the plugin fails to extract the OSType from the info output which leads to a NPE in getDockerPlatform.

String getDockerPlatform() {
    String osType = getDockerInfo().collect { it.trim() }.find { it.startsWith('OSType:') }
    osType.empty ? System.getProperty("os.name") : osType.substring('OSType:'.length()).trim()
}

In this function osType can be null. Is it possible to improve the null safety here?

Stacktrace:

Caused by: java.lang.NullPointerException: Cannot get property 'empty' on null object
	at com.avast.gradle.dockercompose.DockerExecutor.getDockerPlatform(DockerExecutor.groovy:51)
	at com.avast.gradle.dockercompose.DockerExecutor_Decorated.getDockerPlatform(Unknown Source)
	at com.avast.gradle.dockercompose.DockerExecutor.getContainerPlatform(DockerExecutor.groovy:56)
	at com.avast.gradle.dockercompose.DockerExecutor$getContainerPlatform$0.callCurrent(Unknown Source)
	at com.avast.gradle.dockercompose.DockerExecutor.getContainerHost(DockerExecutor.groovy:122)
	at com.avast.gradle.dockercompose.DockerExecutor$getContainerHost.call(Unknown Source)
	at com.avast.gradle.dockercompose.tasks.ComposeUp.createContainerInfo(ComposeUp.groovy:248)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at com.avast.gradle.dockercompose.tasks.ComposeUp$_loadServicesInfo_closure15$_closure26.doCall$original(ComposeUp.groovy:242)
	at com.avast.gradle.dockercompose.tasks.ComposeUp$_loadServicesInfo_closure15$_closure26.doCall(ComposeUp.groovy)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at com.avast.gradle.dockercompose.tasks.ComposeUp$_loadServicesInfo_closure15.doCall$original(ComposeUp.groovy:242)
	at com.avast.gradle.dockercompose.tasks.ComposeUp$_loadServicesInfo_closure15.doCall(ComposeUp.groovy)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at com.avast.gradle.dockercompose.tasks.ComposeUp.loadServicesInfo(ComposeUp.groovy:242)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at com.avast.gradle.dockercompose.tasks.ComposeUp.up(ComposeUp.groovy:147)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions