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;
     }

Reply via email to