You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by sm...@apache.org on 2016/05/19 20:40:15 UTC

[2/2] arrow git commit: Fix BaseAllocator.java NPE when assertions are disabled

Fix BaseAllocator.java NPE when assertions are disabled

This closes #64

When verifying memory using verifyAllocator() method, BaseAllocator throws NPE
if assertions are disabled.

Fixing this issue by checking first if assertion are disabled


Project: http://git-wip-us.apache.org/repos/asf/arrow/repo
Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/e316b3f7
Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/e316b3f7
Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/e316b3f7

Branch: refs/heads/master
Commit: e316b3f765167fa1f45197061624e73332b095f4
Parents: c0985a4
Author: Laurent Goujon <la...@dremio.com>
Authored: Fri Apr 15 14:00:19 2016 -0700
Committer: Steven Phillips <st...@dremio.com>
Committed: Thu May 19 13:19:21 2016 -0700

----------------------------------------------------------------------
 .../org/apache/arrow/memory/BaseAllocator.java  | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/arrow/blob/e316b3f7/java/memory/src/main/java/org/apache/arrow/memory/BaseAllocator.java
----------------------------------------------------------------------
diff --git a/java/memory/src/main/java/org/apache/arrow/memory/BaseAllocator.java b/java/memory/src/main/java/org/apache/arrow/memory/BaseAllocator.java
index 90257bb..f1503c9 100644
--- a/java/memory/src/main/java/org/apache/arrow/memory/BaseAllocator.java
+++ b/java/memory/src/main/java/org/apache/arrow/memory/BaseAllocator.java
@@ -99,6 +99,7 @@ public abstract class BaseAllocator extends Accountant implements BufferAllocato
 
   }
 
+  @Override
   public void assertOpen() {
     if (AssertionUtil.ASSERT_ENABLED) {
       if (isClosed) {
@@ -287,6 +288,7 @@ public abstract class BaseAllocator extends Accountant implements BufferAllocato
       }
     }
 
+    @Override
     public boolean add(final int nBytes) {
       assertOpen();
 
@@ -308,6 +310,7 @@ public abstract class BaseAllocator extends Accountant implements BufferAllocato
       return true;
     }
 
+    @Override
     public ArrowBuf allocateBuffer() {
       assertOpen();
 
@@ -319,14 +322,17 @@ public abstract class BaseAllocator extends Accountant implements BufferAllocato
       return arrowBuf;
     }
 
+    @Override
     public int getSize() {
       return nBytes;
     }
 
+    @Override
     public boolean isUsed() {
       return used;
     }
 
+    @Override
     public boolean isClosed() {
       return closed;
     }
@@ -364,6 +370,7 @@ public abstract class BaseAllocator extends Accountant implements BufferAllocato
       closed = true;
     }
 
+    @Override
     public boolean reserve(int nBytes) {
       assertOpen();
 
@@ -509,6 +516,7 @@ public abstract class BaseAllocator extends Accountant implements BufferAllocato
 
   }
 
+  @Override
   public String toString() {
     final Verbosity verbosity = logger.isTraceEnabled() ? Verbosity.LOG_WITH_STACKTRACE
         : Verbosity.BASIC;
@@ -523,6 +531,7 @@ public abstract class BaseAllocator extends Accountant implements BufferAllocato
    *
    * @return A Verbose string of current allocator state.
    */
+  @Override
   public String toVerboseString() {
     final StringBuilder sb = new StringBuilder();
     print(sb, 0, Verbosity.LOG_WITH_STACKTRACE);
@@ -575,13 +584,12 @@ public abstract class BaseAllocator extends Accountant implements BufferAllocato
    *           when any problems are found
    */
   private void verifyAllocator(final IdentityHashMap<UnsafeDirectLittleEndian, BaseAllocator> buffersSeen) {
-    synchronized (DEBUG_LOCK) {
-
-      // The remaining tests can only be performed if we're in debug mode.
-      if (!DEBUG) {
-        return;
-      }
+    // The remaining tests can only be performed if we're in debug mode.
+    if (!DEBUG) {
+      return;
+    }
 
+    synchronized (DEBUG_LOCK) {
       final long allocated = getAllocatedMemory();
 
       // verify my direct descendants