Repository: commons-compress Updated Branches: refs/heads/compress-2.0 1a377507a -> 613f4dc47
prevent null-Optionals Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/7df45e04 Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/7df45e04 Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/7df45e04 Branch: refs/heads/compress-2.0 Commit: 7df45e04e45fd6ade051e1b016914e7c0da06490 Parents: 1a37750 Author: Stefan Bodewig <bode...@apache.org> Authored: Sun Mar 27 16:16:43 2016 +0200 Committer: Stefan Bodewig <bode...@apache.org> Committed: Sun Mar 27 16:25:27 2016 +0200 ---------------------------------------------------------------------- .../compress2/archivers/ArchiveEntryParameters.java | 6 +++--- .../archivers/ArchiveEntryParametersTest.java | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-compress/blob/7df45e04/src/main/java/org/apache/commons/compress2/archivers/ArchiveEntryParameters.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress2/archivers/ArchiveEntryParameters.java b/src/main/java/org/apache/commons/compress2/archivers/ArchiveEntryParameters.java index a91e7fd..fb2c144 100644 --- a/src/main/java/org/apache/commons/compress2/archivers/ArchiveEntryParameters.java +++ b/src/main/java/org/apache/commons/compress2/archivers/ArchiveEntryParameters.java @@ -164,7 +164,7 @@ public class ArchiveEntryParameters implements ArchiveEntry { * @return the parameters object */ public ArchiveEntryParameters withOwnerInformation(Optional<OwnerInformation> owner) { - this.owner = owner; + this.owner = owner != null ? owner : Optional.empty(); return this; } @@ -183,7 +183,7 @@ public class ArchiveEntryParameters implements ArchiveEntry { * @return the parameters object */ public ArchiveEntryParameters withMode(Optional<Long> mode) { - this.mode = mode; + this.mode = mode != null ? mode : Optional.empty(); return this; } @@ -202,7 +202,7 @@ public class ArchiveEntryParameters implements ArchiveEntry { * @return the parameters object */ public ArchiveEntryParameters withPermissions(Optional<Set<PosixFilePermission>> permissions) { - this.permissions = permissions; + this.permissions = permissions != null ? permissions : Optional.empty(); return this; } http://git-wip-us.apache.org/repos/asf/commons-compress/blob/7df45e04/src/test/java/org/apache/commons/compress2/archivers/ArchiveEntryParametersTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/compress2/archivers/ArchiveEntryParametersTest.java b/src/test/java/org/apache/commons/compress2/archivers/ArchiveEntryParametersTest.java index 0e1f074..c009c09 100644 --- a/src/test/java/org/apache/commons/compress2/archivers/ArchiveEntryParametersTest.java +++ b/src/test/java/org/apache/commons/compress2/archivers/ArchiveEntryParametersTest.java @@ -20,6 +20,7 @@ package org.apache.commons.compress2.archivers; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @@ -198,6 +199,20 @@ public class ArchiveEntryParametersTest { s); } + @Test + public void withOptionalsAreNullSafe() { + ArchiveEntryParameters p = new ArchiveEntryParameters() + .withOwnerInformation((Optional) null) + .withMode((Optional) null) + .withPermissions((Optional) null); + assertNotNull(p.getOwnerInformation()); + assertFalse(p.getOwnerInformation().isPresent()); + assertNotNull(p.getMode()); + assertFalse(p.getMode().isPresent()); + assertNotNull(p.getPermissions()); + assertFalse(p.getPermissions().isPresent()); + } + private static void assertWithinTwoSecondsOf(Instant expected, FileTime actual) { assert Math.abs(Duration.between(expected, actual.toInstant()).getSeconds()) < 2; }