Skip to content

Commit a492f17

Browse files
authored
Merge pull request quarkusio#50895 from gsmet/compose-dev-services-ports
Be more defensive with container.getPorts()
2 parents 5bf808f + 47fbbc0 commit a492f17

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

extensions/devservices/common/src/main/java/io/quarkus/devservices/common/ContainerLocator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ private Stream<Container> lookup(String expectedLabelValue) {
6464
}
6565

6666
private Optional<ContainerPort> getMappedPort(Container container, int port) {
67+
if (container.getPorts() == null) {
68+
return Optional.empty();
69+
}
70+
6771
return Arrays.stream(container.getPorts())
6872
.filter(containerPort -> hasMatchingPort(containerPort, port))
6973
.findAny();
@@ -99,6 +103,10 @@ public Optional<String> locateContainer(String serviceName, boolean shared, Laun
99103
if (shared && launchMode == LaunchMode.DEVELOPMENT) {
100104
return lookup(serviceName).findAny()
101105
.map(container -> {
106+
if (container.getPorts() == null) {
107+
return container.getId();
108+
}
109+
102110
Arrays.stream(container.getPorts())
103111
.filter(cp -> Objects.nonNull(cp.getPublicPort()) && Objects.nonNull(cp.getPrivatePort()))
104112
.forEach(cp -> {

extensions/devservices/deployment/src/main/java/io/quarkus/devservices/deployment/DevServicesProcessor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,10 @@ private static Map<String, String[]> getNetworks(Container container) {
349349
}
350350

351351
private ContainerInfo.ContainerPort[] getExposedPorts(Container container) {
352+
if (container.getPorts() == null) {
353+
return new ContainerInfo.ContainerPort[0];
354+
}
355+
352356
return Arrays.stream(container.getPorts())
353357
.map(c -> new ContainerInfo.ContainerPort(c.getIp(), c.getPrivatePort(), c.getPublicPort(), c.getType()))
354358
.toArray(ContainerInfo.ContainerPort[]::new);

extensions/devservices/deployment/src/main/java/io/quarkus/devservices/deployment/compose/ComposeServiceWaitStrategyTarget.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ public class ComposeServiceWaitStrategyTarget implements WaitStrategyTarget, Sup
3232
public ComposeServiceWaitStrategyTarget(DockerClient dockerClient, Container container) {
3333
this.dockerClient = dockerClient;
3434
this.container = container;
35-
this.exposedPorts = Arrays.stream(container.getPorts())
35+
this.exposedPorts = container.getPorts() != null ? Arrays.stream(container.getPorts())
3636
.filter(port -> port.getPublicPort() != null)
3737
.map(ContainerPort::getPrivatePort)
3838
.filter(Objects::nonNull)
39-
.toList();
39+
.toList() : List.of();
4040
}
4141

4242
@Override

0 commit comments

Comments
 (0)