You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2021/11/27 03:27:25 UTC

[commons-vfs] 06/08: Fix PMD and unlikely but possible NPE and throw appropriate exception instead.

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 5e737636e5b2e0735ac5b61078a47fdb86758a5e
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Nov 26 22:12:55 2021 -0500

    Fix PMD and unlikely but possible NPE and throw appropriate exception
    instead.
    
    Fix PMD: Don't use octal literals.
---
 .../vfs2/provider/AbstractRandomAccessContent.java    |  4 +++-
 .../vfs2/provider/ram/RamFileRandomAccessContent.java |  3 +++
 .../commons/vfs2/provider/tar/TarFileSystem.java      | 13 ++++++++++---
 .../apache/commons/vfs2/util/PosixPermissions.java    | 19 ++++++++++---------
 4 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractRandomAccessContent.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractRandomAccessContent.java
index 0cc1208..26fa7f5 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractRandomAccessContent.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractRandomAccessContent.java
@@ -17,6 +17,7 @@
 package org.apache.commons.vfs2.provider;
 
 import java.io.IOException;
+import java.util.Objects;
 
 import org.apache.commons.vfs2.RandomAccessContent;
 import org.apache.commons.vfs2.util.RandomAccessMode;
@@ -29,6 +30,7 @@ import org.apache.commons.vfs2.util.RandomAccessMode;
 public abstract class AbstractRandomAccessContent implements RandomAccessContent {
 
     protected AbstractRandomAccessContent(final RandomAccessMode mode) {
+        Objects.requireNonNull(mode, "mode");
     }
 
     /**
@@ -40,7 +42,7 @@ public abstract class AbstractRandomAccessContent implements RandomAccessContent
     @Override
     @Deprecated
     public String readLine() throws IOException {
-        throw new UnsupportedOperationException("deprecated");
+        throw new UnsupportedOperationException("Deprecated");
     }
 
     @Override
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ram/RamFileRandomAccessContent.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ram/RamFileRandomAccessContent.java
index e2e24b2..927585b 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ram/RamFileRandomAccessContent.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ram/RamFileRandomAccessContent.java
@@ -23,6 +23,7 @@ import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.Charset;
+import java.util.Objects;
 
 import org.apache.commons.vfs2.RandomAccessContent;
 import org.apache.commons.vfs2.util.RandomAccessMode;
@@ -76,6 +77,8 @@ public class RamFileRandomAccessContent implements RandomAccessContent {
      * @param mode The access mode.
      */
     public RamFileRandomAccessContent(final RamFileObject file, final RandomAccessMode mode) {
+        Objects.requireNonNull(file, "file");
+        Objects.requireNonNull(mode, "mode");
         this.buf = file.getData().getContent();
         this.file = file;
 
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/tar/TarFileSystem.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/tar/TarFileSystem.java
index 50f7c00..96fe00a 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/tar/TarFileSystem.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/tar/TarFileSystem.java
@@ -23,14 +23,17 @@ import java.nio.file.Files;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 import java.util.zip.GZIPInputStream;
 
+import org.apache.commons.compress.archivers.ArchiveEntry;
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.vfs2.Capability;
 import org.apache.commons.vfs2.FileName;
+import org.apache.commons.vfs2.FileNotFoundException;
 import org.apache.commons.vfs2.FileObject;
 import org.apache.commons.vfs2.FileSystemException;
 import org.apache.commons.vfs2.FileSystemOptions;
@@ -133,11 +136,16 @@ public class TarFileSystem extends AbstractFileSystem {
     }
 
     public InputStream getInputStream(final TarArchiveEntry entry) throws FileSystemException {
+        Objects.requireNonNull(entry, "entry");
         resetTarFile();
         try {
-            while (!tarFile.getNextEntry().equals(entry)) {
+            ArchiveEntry next;
+            while ((next = tarFile.getNextEntry()) != null) {
+                if (next.equals(entry)) {
+                    return tarFile;
+                }
             }
-            return tarFile;
+            throw new FileNotFoundException(entry.toString());
         } catch (final IOException e) {
             throw new FileSystemException(e);
         }
@@ -147,7 +155,6 @@ public class TarFileSystem extends AbstractFileSystem {
         if (tarFile == null && this.file.exists()) {
             recreateTarFile();
         }
-
         return tarFile;
     }
 
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/PosixPermissions.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/PosixPermissions.java
index ac9fa9d..67cf313 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/PosixPermissions.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/PosixPermissions.java
@@ -31,50 +31,51 @@ public class PosixPermissions {
      * Permission types.
      */
     public enum Type {
+
         /**
          * User right readable.
          */
-        UserReadable(00400),
+        UserReadable(0x100),
 
         /**
          * User right writable.
          */
-        UserWritable(00200),
+        UserWritable(0x080),
 
         /**
          * User right executable.
          */
-        UserExecutable(00100),
+        UserExecutable(0x040),
 
         /**
          * Group right readable.
          */
-        GroupReadable(00040),
+        GroupReadable(0x020),
 
         /**
          * Group right writable.
          */
-        GroupWritable(00020),
+        GroupWritable(0x010),
 
         /**
          * Group right executable.
          */
-        GroupExecutable(00010),
+        GroupExecutable(0x008),
 
         /**
          * Other right readable.
          */
-        OtherReadable(00004),
+        OtherReadable(0x004),
 
         /**
          * Other right writable.
          */
-        OtherWritable(00002),
+        OtherWritable(0x002),
 
         /**
          * Other right executable.
          */
-        OtherExecutable(00001);
+        OtherExecutable(0x001);
 
         private final int mask;