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 2022/12/11 15:53:03 UTC

[commons-crypto] branch master updated: Minor bullet-proofing

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-crypto.git


The following commit(s) were added to refs/heads/master by this push:
     new 4c2fa88  Minor bullet-proofing
4c2fa88 is described below

commit 4c2fa88f16b96d150fef4553a4674d23c627e22a
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Dec 11 10:52:59 2022 -0500

    Minor bullet-proofing
---
 .../commons/crypto/stream/CryptoInputStream.java   | 42 +++++++++++-----------
 1 file changed, 22 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/apache/commons/crypto/stream/CryptoInputStream.java b/src/main/java/org/apache/commons/crypto/stream/CryptoInputStream.java
index bf939b0..bc5a16e 100644
--- a/src/main/java/org/apache/commons/crypto/stream/CryptoInputStream.java
+++ b/src/main/java/org/apache/commons/crypto/stream/CryptoInputStream.java
@@ -210,8 +210,7 @@ public class CryptoInputStream extends InputStream implements
         }
 
         inBuffer = ByteBuffer.allocateDirect(this.bufferSize);
-        outBuffer = ByteBuffer.allocateDirect(this.bufferSize
-                + cipher.getBlockSize());
+        outBuffer = ByteBuffer.allocateDirect(this.bufferSize + cipher.getBlockSize());
         outBuffer.limit(0);
 
         initCipher();
@@ -587,26 +586,29 @@ public class CryptoInputStream extends InputStream implements
      * @param buffer the bytebuffer to be freed.
      */
     static void freeDirectBuffer(final ByteBuffer buffer) {
-        try {
-            /* Using reflection to implement sun.nio.ch.DirectBuffer.cleaner()
-            .clean(); */
-            final String SUN_CLASS = "sun.nio.ch.DirectBuffer";
-            final Class<?>[] interfaces = buffer.getClass().getInterfaces();
-            final Object[] EMPTY_OBJECT_ARRAY = {};
-
-            for (final Class<?> clazz : interfaces) {
-                if (clazz.getName().equals(SUN_CLASS)) {
-                    /* DirectBuffer#cleaner() */
-                    final Method getCleaner = Class.forName(SUN_CLASS).getMethod("cleaner");
-                    final Object cleaner = getCleaner.invoke(buffer, EMPTY_OBJECT_ARRAY);
-                    /* Cleaner#clean() */
-                    final Method cleanMethod = Class.forName("sun.misc.Cleaner").getMethod("clean");
-                    cleanMethod.invoke(cleaner, EMPTY_OBJECT_ARRAY);
-                    return;
+        if (buffer != null) {
+            try {
+                /*
+                 * Using reflection to implement sun.nio.ch.DirectBuffer.cleaner() .clean();
+                 */
+                final String SUN_CLASS = "sun.nio.ch.DirectBuffer";
+                final Class<?>[] interfaces = buffer.getClass().getInterfaces();
+                final Object[] EMPTY_OBJECT_ARRAY = {};
+
+                for (final Class<?> clazz : interfaces) {
+                    if (clazz.getName().equals(SUN_CLASS)) {
+                        /* DirectBuffer#cleaner() */
+                        final Method getCleaner = Class.forName(SUN_CLASS).getMethod("cleaner");
+                        final Object cleaner = getCleaner.invoke(buffer, EMPTY_OBJECT_ARRAY);
+                        /* Cleaner#clean() */
+                        final Method cleanMethod = Class.forName("sun.misc.Cleaner").getMethod("clean");
+                        cleanMethod.invoke(cleaner, EMPTY_OBJECT_ARRAY);
+                        return;
+                    }
                 }
+            } catch (final ReflectiveOperationException e) { // NOPMD
+                // Ignore the Reflection exception.
             }
-        } catch (final ReflectiveOperationException e) { // NOPMD
-            // Ignore the Reflection exception.
         }
     }