JCLOUDS-1041: Fix NPE when deserializing Port in Docker 1.9.1
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/29a8474b Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/29a8474b Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/29a8474b Branch: refs/heads/master Commit: 29a8474ba03b420b462566acede250e98fdb4789 Parents: 33522b8 Author: Ignasi Barrera <[email protected]> Authored: Mon Nov 23 22:30:20 2015 +0100 Committer: Ignasi Barrera <[email protected]> Committed: Mon Nov 23 22:31:01 2015 +0100 ---------------------------------------------------------------------- .../main/java/org/jclouds/docker/domain/Port.java | 7 ++++--- .../jclouds/docker/parse/ContainersParseTest.java | 16 +++++++--------- apis/docker/src/test/resources/containers.json | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/29a8474b/apis/docker/src/main/java/org/jclouds/docker/domain/Port.java ---------------------------------------------------------------------- diff --git a/apis/docker/src/main/java/org/jclouds/docker/domain/Port.java b/apis/docker/src/main/java/org/jclouds/docker/domain/Port.java index b4bc93e..45fa966 100644 --- a/apis/docker/src/main/java/org/jclouds/docker/domain/Port.java +++ b/apis/docker/src/main/java/org/jclouds/docker/domain/Port.java @@ -16,17 +16,18 @@ */ package org.jclouds.docker.domain; +import org.jclouds.javax.annotation.Nullable; import org.jclouds.json.SerializedNames; import com.google.auto.value.AutoValue; @AutoValue public abstract class Port { - public abstract String ip(); + @Nullable public abstract String ip(); public abstract int privatePort(); - public abstract int publicPort(); + @Nullable public abstract Integer publicPort(); public abstract String type(); @@ -34,7 +35,7 @@ public abstract class Port { } @SerializedNames({ "IP", "PrivatePort", "PublicPort", "Type" }) - public static Port create(String ip, int privatePort, int publicPort, String type) { + public static Port create(String ip, int privatePort, Integer publicPort, String type) { return new AutoValue_Port(ip, privatePort, publicPort, type); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/29a8474b/apis/docker/src/test/java/org/jclouds/docker/parse/ContainersParseTest.java ---------------------------------------------------------------------- diff --git a/apis/docker/src/test/java/org/jclouds/docker/parse/ContainersParseTest.java b/apis/docker/src/test/java/org/jclouds/docker/parse/ContainersParseTest.java index bb3bd62..39565bf 100644 --- a/apis/docker/src/test/java/org/jclouds/docker/parse/ContainersParseTest.java +++ b/apis/docker/src/test/java/org/jclouds/docker/parse/ContainersParseTest.java @@ -39,15 +39,13 @@ public class ContainersParseTest extends BaseDockerParseTest<List<ContainerSumma @Override @Consumes(MediaType.APPLICATION_JSON) public List<ContainerSummary> expected() { - return ImmutableList.of( - ContainerSummary.create("6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9", - ImmutableList.of("/hopeful_mclean"), - "1395472605", - "jclouds/ubuntu:latest", - "/usr/sbin/sshd -D", - ImmutableList.of(Port.create("0.0.0.0", 22, 49231, "tcp")), - "Up 55 seconds") - ); + return ImmutableList.of(ContainerSummary.create( + "6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a9", ImmutableList.of("/hopeful_mclean"), + "1395472605", "jclouds/ubuntu:latest", "/usr/sbin/sshd -D", + ImmutableList.of(Port.create("0.0.0.0", 22, 49231, "tcp")), "Up 55 seconds"), ContainerSummary.create( + "6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a2", ImmutableList.of("/hopeful_mclean"), + "1395472605", "jclouds/ubuntu:latest", "/usr/sbin/sshd -D", + ImmutableList.of(Port.create(null, 22, null, "tcp")), "Up 55 seconds")); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/29a8474b/apis/docker/src/test/resources/containers.json ---------------------------------------------------------------------- diff --git a/apis/docker/src/test/resources/containers.json b/apis/docker/src/test/resources/containers.json index 8f789b7..e7e7e3b 100644 --- a/apis/docker/src/test/resources/containers.json +++ b/apis/docker/src/test/resources/containers.json @@ -16,5 +16,21 @@ } ], "Status": "Up 55 seconds" + }, + { + "Command": "/usr/sbin/sshd -D", + "Created": 1395472605, + "Id": "6d35806c1bd2b25cd92bba2d2c2c5169dc2156f53ab45c2b62d76e2d2fee14a2", + "Image": "jclouds/ubuntu:latest", + "Names": [ + "/hopeful_mclean" + ], + "Ports": [ + { + "PrivatePort": 22, + "Type": "tcp" + } + ], + "Status": "Up 55 seconds" } ] \ No newline at end of file
