|
77 | 77 | import java.util.Collections; |
78 | 78 | import java.util.HashMap; |
79 | 79 | import java.util.HashSet; |
| 80 | +import java.util.Iterator; |
80 | 81 | import java.util.LinkedHashSet; |
81 | 82 | import java.util.List; |
82 | 83 | import java.util.Map; |
@@ -118,7 +119,7 @@ public class GenericContainer<SELF extends GenericContainer<SELF>> |
118 | 119 | * Default settings |
119 | 120 | */ |
120 | 121 | @NonNull |
121 | | - private List<Integer> exposedPorts = new ArrayList<>(); |
| 122 | + private LinkedHashSet<Integer> exposedPorts = new LinkedHashSet<>(); |
122 | 123 |
|
123 | 124 | @NonNull |
124 | 125 | private List<String> portBindings = new ArrayList<>(); |
@@ -256,6 +257,16 @@ public void setImage(Future<String> image) { |
256 | 257 | this.image = new RemoteDockerImage(image); |
257 | 258 | } |
258 | 259 |
|
| 260 | + @Override |
| 261 | + public List<Integer> getExposedPorts() { |
| 262 | + return new ArrayList<>(exposedPorts); |
| 263 | + } |
| 264 | + |
| 265 | + @Override |
| 266 | + public void setExposedPorts(List<Integer> exposedPorts) { |
| 267 | + this.exposedPorts = new LinkedHashSet<>(exposedPorts); |
| 268 | + } |
| 269 | + |
259 | 270 | /** |
260 | 271 | * @see #dependsOn(Iterable) |
261 | 272 | */ |
@@ -671,8 +682,9 @@ protected void containerIsStopped(InspectContainerResponse containerInfo) { |
671 | 682 | @Deprecated |
672 | 683 | protected Integer getLivenessCheckPort() { |
673 | 684 | // legacy implementation for backwards compatibility |
674 | | - if (exposedPorts.size() > 0) { |
675 | | - return getMappedPort(exposedPorts.get(0)); |
| 685 | + Iterator<Integer> exposedPortsIterator = exposedPorts.iterator(); |
| 686 | + if (exposedPortsIterator.hasNext()) { |
| 687 | + return getMappedPort(exposedPortsIterator.next()); |
676 | 688 | } else if (portBindings.size() > 0) { |
677 | 689 | return Integer.valueOf(PortBinding.parse(portBindings.get(0)).getBinding().getHostPortSpec()); |
678 | 690 | } else { |
|
0 commit comments