You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Michael Blow (Code Review)" <do...@asterixdb.incubator.apache.org> on 2016/02/24 17:30:02 UTC

Change in hyracks[master]: More Coverity Fixes

Michael Blow has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/661

Change subject: More Coverity Fixes
......................................................................

More Coverity Fixes

- CID 68210 (#1 of 1): Check of thread-shared field evades lock
acquisition (LOCK_EVASION)
6. thread1_overwrites_value_in_field: Thread1 sets index to a new
value. Now the two threads have an inconsistent view of index and
updates to fields of index or fields correlated with index may be
lost.

- CID 68209 (#1 of 1): Check of thread-shared field evades lock
acquisition (LOCK_EVASION)
6. thread1_overwrites_value_in_field: Thread1 sets index to a new
value. Now the two threads have an inconsistent view of index and
updates to fields of index or fields correlated with index may be
lost.

- CID 68208 (#1 of 1): Check of thread-shared field evades lock
acquisition (LOCK_EVASION)
6. thread1_overwrites_value_in_field: Thread1 sets index to a new
value. Now the two threads have an inconsistent view of index and
updates to fields of index or fields correlated with index may be
lost.

- CID 68435 (#1 of 1): UR: Uninitialized read of field in constructor
(FB.UR_UNINIT_READ)
1. defect: Uninitialized read of btreeCmp.

- CID 68416 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK_EXCEPTION_PATH)
1. defect:
org.apache.hyracks.storage.am.lsm.invertedindex.inmemory.PartitionedIn
MemoryInvertedIndex.updatePartitionIndexes(short) does not release
lock on all exception paths.

- CID 68415 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK)
1. defect:
org.apache.hyracks.storage.common.buffercache.BufferCache.sweepAndFlus
h(int, boolean) does not release lock on all paths.

- CID 68414 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK)
1. defect:
org.apache.hyracks.storage.common.buffercache.BufferCache.dumpState()
does not release lock on all paths.

- CID 68412 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK)
1. defect:
org.apache.hyracks.storage.am.lsm.common.impls.VirtualBufferCache.dele
teFile(int, boolean) does not release lock on all paths.

- CID 68337 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68336 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68335 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68334 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68259 (#1 of 1): Result is not floating-point
(UNINTENDED_INTEGER_DIVISION)
integer_division: Dividing integer expressions 2147483647 and 2, and
then converting the integer quotient to type double. Any remainder,
or fractional part of the quotient, is ignored.

Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
---
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java
M hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java
M hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
M hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java
M hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java
12 files changed, 44 insertions(+), 33 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/hyracks refs/changes/61/661/1

diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java
index cff11dc..d655037 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java
@@ -82,7 +82,7 @@
     @Override
     public String next() {
         StringBuilder strBuilder = new StringBuilder();
-        int numWords = Math.abs(rnd.nextInt()) % (docMaxWords - docMinWords + 1) + docMinWords;
+        int numWords = rnd.nextInt() % (docMaxWords - docMinWords + 1) + docMinWords;
         for (int i = 0; i < numWords; i++) {
             int ix = ProbabilityHelper.choose(cumulIntRanges, rnd.nextInt());
             strBuilder.append(tokenDict.get(ix));
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java
index 49edafb..45fc0bd 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java
@@ -76,20 +76,20 @@
         StringBuilder strBuilder = new StringBuilder();
 
         // First name.
-        int fix = Math.abs(rnd.nextInt()) % firstNames.size();
+        int fix = rnd.nextInt() % firstNames.size();
         strBuilder.append(firstNames.get(fix));
         strBuilder.append(" ");
 
         // Optional middle initial.
         double d = Math.abs(rnd.nextDouble());
         if (d <= middleInitialProb) {
-            int mix = Math.abs(rnd.nextInt()) % letters.length();
+            int mix = rnd.nextInt() % letters.length();
             strBuilder.append(letters.charAt(mix));
             strBuilder.append(". ");
         }
 
         // Last name.
-        int lix = Math.abs(rnd.nextInt()) % lastNames.size();
+        int lix = rnd.nextInt() % lastNames.size();
         strBuilder.append(lastNames.get(lix));
 
         return strBuilder.toString();
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java
index c337462..554b559 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java
@@ -39,7 +39,7 @@
         String s = Long.toHexString(Double.doubleToLongBits(rnd.nextDouble()));
         StringBuilder strBuilder = new StringBuilder();
         for (int i = 0; i < s.length() && i < maxLen; i++) {
-            strBuilder.append(s.charAt(Math.abs(rnd.nextInt()) % s.length()));
+            strBuilder.append(s.charAt(rnd.nextInt() % s.length()));
         }
         return strBuilder.toString();
     }
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java
index 398a3f3..69b7c89 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java
@@ -84,7 +84,7 @@
 
 					int remainingLength = pageIds.size();
 					for (int j = 0; j < pageIds.size(); j++) {
-						int index = Math.abs(rnd.nextInt()) % remainingLength;
+						int index = rnd.nextInt() % remainingLength;
 						int pageId = remainingPageIds[index];
 
 						// pin & latch then immediately unlatch & unpin
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java
index 44d81ab..c82bf28 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java
@@ -56,13 +56,16 @@
 
     @Override
     public IIndex getIndexInstance() {
-        if (index != null)
+        if (index != null) {
             return index;
+        }
         synchronized (lcManager) {
-            try {
-                index = lcManager.getIndex(resourcePath);
-            } catch (HyracksDataException e) {
-                return null;
+            if (index == null) {
+                try {
+                    index = lcManager.getIndex(resourcePath);
+                } catch (HyracksDataException e) {
+                    return null;
+                }
             }
         }
         return index;
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java
index 81beadd..56e9014 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java
@@ -57,13 +57,16 @@
 
     @Override
     public IIndex getIndexInstance() {
-        if (index != null)
+        if (index != null) {
             return index;
+        }
         synchronized (lcManager) {
-            try {
-                index = lcManager.getIndex(resourcePath);
-            } catch (HyracksDataException e) {
-                return null;
+            if (index == null) {
+                try {
+                    index = lcManager.getIndex(resourcePath);
+                } catch (HyracksDataException e) {
+                    return null;
+                }
             }
         }
         return index;
diff --git a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java
index 272f970..6b8cf35 100644
--- a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java
+++ b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java
@@ -96,7 +96,7 @@
         }
 
         for (int i = 0; i < buckets.length; i++) {
-            CacheBucket bucket = buckets[i];
+            final CacheBucket bucket = buckets[i];
             bucket.bucketLock.lock();
             try {
                 VirtualPage prev = null;
diff --git a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java
index 273aa16..39dcd4a 100644
--- a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java
+++ b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java
@@ -72,13 +72,16 @@
 
     public void updatePartitionIndexes(short numTokens) {
         partitionIndexLock.writeLock().lock();
-        if (numTokens < minPartitionIndex) {
-            minPartitionIndex = numTokens;
+        try {
+            if (numTokens < minPartitionIndex) {
+                minPartitionIndex = numTokens;
+            }
+            if (numTokens > maxPartitionIndex) {
+                maxPartitionIndex = numTokens;
+            }
+        } finally {
+            partitionIndexLock.writeLock().unlock();
         }
-        if (numTokens > maxPartitionIndex) {
-            maxPartitionIndex = numTokens;
-        }
-        partitionIndexLock.writeLock().unlock();
     }
 
     @Override
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java
index 6f1c34a..48cc476 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java
@@ -72,13 +72,16 @@
 
     @Override
     public IIndex getIndexInstance() {
-        if (index != null)
+        if (index != null) {
             return index;
+        }
         synchronized (lcManager) {
-            try {
-                index = lcManager.getIndex(resourcePath);
-            } catch (HyracksDataException e) {
-                return null;
+            if (index == null) {
+                try {
+                    index = lcManager.getIndex(resourcePath);
+                } catch (HyracksDataException e) {
+                    return null;
+                }
             }
         }
         return index;
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
index d5257fe..c8f05c2 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
@@ -67,7 +67,7 @@
 
     public LSMRTreeAbstractCursor(ILSMIndexOperationContext opCtx) {
         this.opCtx = opCtx;
-        btreeRangePredicate = new RangePredicate(null, null, true, true, btreeCmp, btreeCmp);
+        btreeRangePredicate = new RangePredicate(null, null, true, true, null, null);
     }
 
     public RTreeSearchCursor getCursor(int cursorIndex) {
diff --git a/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java b/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java
index f62ae27..2f372e2 100644
--- a/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java
+++ b/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java
@@ -21,7 +21,6 @@
 import org.apache.hyracks.api.dataflow.value.ILinearizeComparator;
 import org.apache.hyracks.data.std.primitive.DoublePointable;
 import org.apache.hyracks.data.std.primitive.IntegerPointable;
-import org.apache.hyracks.dataflow.common.data.marshalling.IntegerSerializerDeserializer;
 import org.apache.hyracks.storage.am.common.ophelpers.DoubleArrayList;
 
 /*
@@ -48,7 +47,7 @@
     }
 
     private void resetStateMachine() {
-        stepsize = Integer.MAX_VALUE / 2;
+        stepsize = Integer.MAX_VALUE / 2.0f;
         bounds = new double[dim];
         boundsStack.clear();
     }
diff --git a/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java b/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java
index 75adfc9..27d0423 100644
--- a/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java
+++ b/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java
@@ -448,7 +448,7 @@
         buffer.append("cpid -> [fileId:pageId, pinCount, valid/invalid, confiscated/physical, dirty/clean]");
         int nCachedPages = 0;
         for (int i = 0; i < pageMap.length; ++i) {
-            CacheBucket cb = pageMap[i];
+            final CacheBucket cb = pageMap[i];
             cb.bucketLock.lock();
             try {
                 CachedPage cp = cb.cachedPage;
@@ -786,7 +786,7 @@
 
     private void sweepAndFlush(int fileId, boolean flushDirtyPages) throws HyracksDataException {
         for (int i = 0; i < pageMap.length; ++i) {
-            CacheBucket bucket = pageMap[i];
+            final CacheBucket bucket = pageMap[i];
             bucket.bucketLock.lock();
             try {
                 CachedPage prev = bucket.cachedPage;

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>

Change in hyracks[master]: More Coverity Fixes

Posted by "Michael Blow (Code Review)" <do...@asterixdb.incubator.apache.org>.
Hello Jenkins,

I'd like you to reexamine a change.  Please visit

    https://asterix-gerrit.ics.uci.edu/661

to look at the new patch set (#2).

Change subject: More Coverity Fixes
......................................................................

More Coverity Fixes

- CID 68210 (#1 of 1): Check of thread-shared field evades lock
acquisition (LOCK_EVASION)
6. thread1_overwrites_value_in_field: Thread1 sets index to a new
value. Now the two threads have an inconsistent view of index and
updates to fields of index or fields correlated with index may be
lost.

- CID 68209 (#1 of 1): Check of thread-shared field evades lock
acquisition (LOCK_EVASION)
6. thread1_overwrites_value_in_field: Thread1 sets index to a new
value. Now the two threads have an inconsistent view of index and
updates to fields of index or fields correlated with index may be
lost.

- CID 68208 (#1 of 1): Check of thread-shared field evades lock
acquisition (LOCK_EVASION)
6. thread1_overwrites_value_in_field: Thread1 sets index to a new
value. Now the two threads have an inconsistent view of index and
updates to fields of index or fields correlated with index may be
lost.

- CID 68435 (#1 of 1): UR: Uninitialized read of field in constructor
(FB.UR_UNINIT_READ)
1. defect: Uninitialized read of btreeCmp.

- CID 68416 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK_EXCEPTION_PATH)
1. defect:
org.apache.hyracks.storage.am.lsm.invertedindex.inmemory.PartitionedIn
MemoryInvertedIndex.updatePartitionIndexes(short) does not release
lock on all exception paths.

- CID 68415 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK)
1. defect:
org.apache.hyracks.storage.common.buffercache.BufferCache.sweepAndFlus
h(int, boolean) does not release lock on all paths.

- CID 68414 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK)
1. defect:
org.apache.hyracks.storage.common.buffercache.BufferCache.dumpState()
does not release lock on all paths.

- CID 68412 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK)
1. defect:
org.apache.hyracks.storage.am.lsm.common.impls.VirtualBufferCache.dele
teFile(int, boolean) does not release lock on all paths.

- CID 68337 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68336 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68335 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68334 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68259 (#1 of 1): Result is not floating-point
(UNINTENDED_INTEGER_DIVISION)
integer_division: Dividing integer expressions 2147483647 and 2, and
then converting the integer quotient to type double. Any remainder,
or fractional part of the quotient, is ignored.

Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
---
M hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/AbstractHeap.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java
M hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java
M hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
M hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java
M hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java
R hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/MathUtil.java
R hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/MathTest.java
15 files changed, 60 insertions(+), 38 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/hyracks refs/changes/61/661/2
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 2
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>

Change in hyracks[master]: More Coverity Fixes

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: More Coverity Fixes
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/859/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in hyracks[master]: More Coverity Fixes

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: More Coverity Fixes
......................................................................


Patch Set 1: Verified-1

Build Failed 

https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/859/ : ABORTED

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No

Change in hyracks[master]: More Coverity Fixes

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: More Coverity Fixes
......................................................................


Patch Set 2:

Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/863/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 2
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No

Change in hyracks[master]: More Coverity Fixes

Posted by "Ian Maxon (Code Review)" <do...@asterixdb.incubator.apache.org>.
Ian Maxon has posted comments on this change.

Change subject: More Coverity Fixes
......................................................................


Patch Set 1:

Maybe the Math.abs(rand.nextInt()) could get replaced with rand.nextInt(Integer.MAX_VALUE) instead? That's what the internets suggest, anyway, to avoid getting a negative when the number is too small to change to a positive without overflowing.

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No

Change in hyracks[master]: More Coverity Fixes

Posted by "Michael Blow (Code Review)" <do...@asterixdb.incubator.apache.org>.
Michael Blow has posted comments on this change.

Change subject: More Coverity Fixes
......................................................................


Patch Set 1:

Oops, I misread the JLS transposing dividend & divisor.  I think the logic for nextInt(MAX_VALUE) is a little more complicated than needed- I think masking off the sign bit will be the most efficient; will resubmit.

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No

Change in hyracks[master]: More Coverity Fixes

Posted by "Ian Maxon (Code Review)" <do...@asterixdb.incubator.apache.org>.
Ian Maxon has posted comments on this change.

Change subject: More Coverity Fixes
......................................................................


Patch Set 2: Code-Review+2

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 2
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No

Change in hyracks[master]: More Coverity Fixes

Posted by "Till Westmann (Code Review)" <do...@asterixdb.incubator.apache.org>.
Till Westmann has submitted this change and it was merged.

Change subject: More Coverity Fixes
......................................................................


More Coverity Fixes

- CID 68210 (#1 of 1): Check of thread-shared field evades lock
acquisition (LOCK_EVASION)
6. thread1_overwrites_value_in_field: Thread1 sets index to a new
value. Now the two threads have an inconsistent view of index and
updates to fields of index or fields correlated with index may be
lost.

- CID 68209 (#1 of 1): Check of thread-shared field evades lock
acquisition (LOCK_EVASION)
6. thread1_overwrites_value_in_field: Thread1 sets index to a new
value. Now the two threads have an inconsistent view of index and
updates to fields of index or fields correlated with index may be
lost.

- CID 68208 (#1 of 1): Check of thread-shared field evades lock
acquisition (LOCK_EVASION)
6. thread1_overwrites_value_in_field: Thread1 sets index to a new
value. Now the two threads have an inconsistent view of index and
updates to fields of index or fields correlated with index may be
lost.

- CID 68435 (#1 of 1): UR: Uninitialized read of field in constructor
(FB.UR_UNINIT_READ)
1. defect: Uninitialized read of btreeCmp.

- CID 68416 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK_EXCEPTION_PATH)
1. defect:
org.apache.hyracks.storage.am.lsm.invertedindex.inmemory.PartitionedIn
MemoryInvertedIndex.updatePartitionIndexes(short) does not release
lock on all exception paths.

- CID 68415 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK)
1. defect:
org.apache.hyracks.storage.common.buffercache.BufferCache.sweepAndFlus
h(int, boolean) does not release lock on all paths.

- CID 68414 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK)
1. defect:
org.apache.hyracks.storage.common.buffercache.BufferCache.dumpState()
does not release lock on all paths.

- CID 68412 (#1 of 1): UL: Lock not released on all paths
(FB.UL_UNRELEASED_LOCK)
1. defect:
org.apache.hyracks.storage.am.lsm.common.impls.VirtualBufferCache.dele
teFile(int, boolean) does not release lock on all paths.

- CID 68337 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68336 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68335 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68334 (#1 of 1): RV: Bad use of return value
(FB.RV_ABSOLUTE_VALUE_OF_RANDOM_INT)
1. defect: Bad attempt to compute absolute value of signed random
integer.

- CID 68259 (#1 of 1): Result is not floating-point
(UNINTENDED_INTEGER_DIVISION)
integer_division: Dividing integer expressions 2147483647 and 2, and
then converting the integer quotient to type double. Any remainder,
or fractional part of the quotient, is ignored.

Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Reviewed-on: https://asterix-gerrit.ics.uci.edu/661
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Ian Maxon <im...@apache.org>
---
M hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/AbstractHeap.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java
M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java
M hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java
M hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java
M hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java
M hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
M hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java
M hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java
R hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/MathUtil.java
R hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/MathTest.java
15 files changed, 60 insertions(+), 38 deletions(-)

Approvals:
  Ian Maxon: Looks good to me, approved
  Jenkins: Verified



diff --git a/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/AbstractHeap.java b/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/AbstractHeap.java
index a0abaf7..c6ca09b 100644
--- a/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/AbstractHeap.java
+++ b/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/structures/AbstractHeap.java
@@ -21,7 +21,7 @@
 
 import java.util.Arrays;
 
-import org.apache.hyracks.dataflow.std.util.MathUtil;
+import org.apache.hyracks.util.MathUtil;
 
 public abstract class AbstractHeap implements IHeap<IResetableComparable> {
     protected static final int NOT_EXIST = -1;
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java
index cff11dc..1e8077c 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/DocumentStringFieldValueGenerator.java
@@ -27,6 +27,8 @@
 import java.util.List;
 import java.util.Random;
 
+import org.apache.hyracks.util.MathUtil;
+
 public class DocumentStringFieldValueGenerator implements IFieldValueGenerator<String> {
     private final String FIRST_NAMES_FILE = "dist.all.first.cleaned";
     private final String LAST_NAMES_FILE = "dist.all.last.cleaned";
@@ -82,7 +84,7 @@
     @Override
     public String next() {
         StringBuilder strBuilder = new StringBuilder();
-        int numWords = Math.abs(rnd.nextInt()) % (docMaxWords - docMinWords + 1) + docMinWords;
+        int numWords = MathUtil.stripSignBit(rnd.nextInt()) % (docMaxWords - docMinWords + 1) + docMinWords;
         for (int i = 0; i < numWords; i++) {
             int ix = ProbabilityHelper.choose(cumulIntRanges, rnd.nextInt());
             strBuilder.append(tokenDict.get(ix));
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java
index 49edafb..5af0b0f 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/PersonNameFieldValueGenerator.java
@@ -27,6 +27,8 @@
 import java.util.List;
 import java.util.Random;
 
+import org.apache.hyracks.util.MathUtil;
+
 public class PersonNameFieldValueGenerator implements IFieldValueGenerator<String> {
     private final String FIRST_NAMES_FILE = "dist.all.first.cleaned";
     private final String LAST_NAMES_FILE = "dist.all.last.cleaned";
@@ -76,20 +78,20 @@
         StringBuilder strBuilder = new StringBuilder();
 
         // First name.
-        int fix = Math.abs(rnd.nextInt()) % firstNames.size();
+        int fix = MathUtil.stripSignBit(rnd.nextInt()) % firstNames.size();
         strBuilder.append(firstNames.get(fix));
         strBuilder.append(" ");
 
         // Optional middle initial.
         double d = Math.abs(rnd.nextDouble());
         if (d <= middleInitialProb) {
-            int mix = Math.abs(rnd.nextInt()) % letters.length();
+            int mix = MathUtil.stripSignBit(rnd.nextInt()) % letters.length();
             strBuilder.append(letters.charAt(mix));
             strBuilder.append(". ");
         }
 
         // Last name.
-        int lix = Math.abs(rnd.nextInt()) % lastNames.size();
+        int lix = MathUtil.stripSignBit(rnd.nextInt()) % lastNames.size();
         strBuilder.append(lastNames.get(lix));
 
         return strBuilder.toString();
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java
index c337462..9418447 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/datagen/StringFieldValueGenerator.java
@@ -21,6 +21,8 @@
 
 import java.util.Random;
 
+import org.apache.hyracks.util.MathUtil;
+
 public class StringFieldValueGenerator implements IFieldValueGenerator<String> {
     private int maxLen;
     private final Random rnd;
@@ -39,7 +41,7 @@
         String s = Long.toHexString(Double.doubleToLongBits(rnd.nextDouble()));
         StringBuilder strBuilder = new StringBuilder();
         for (int i = 0; i < s.length() && i < maxLen; i++) {
-            strBuilder.append(s.charAt(Math.abs(rnd.nextInt()) % s.length()));
+            strBuilder.append(s.charAt(MathUtil.stripSignBit(rnd.nextInt()) % s.length()));
         }
         return strBuilder.toString();
     }
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java
index 398a3f3..d9013d3 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/util/TreeIndexBufferCacheWarmup.java
@@ -22,6 +22,7 @@
 import java.util.Random;
 
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.util.MathUtil;
 import org.apache.hyracks.storage.am.common.api.IMetaDataPageManager;
 import org.apache.hyracks.storage.am.common.api.ITreeIndexFrame;
 import org.apache.hyracks.storage.am.common.api.ITreeIndexMetaDataFrame;
@@ -84,7 +85,7 @@
 
 					int remainingLength = pageIds.size();
 					for (int j = 0; j < pageIds.size(); j++) {
-						int index = Math.abs(rnd.nextInt()) % remainingLength;
+						int index = MathUtil.stripSignBit(rnd.nextInt()) % remainingLength;
 						int pageId = remainingPageIds[index];
 
 						// pin & latch then immediately unlatch & unpin
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java
index 44d81ab..c82bf28 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeDataflowHelper.java
@@ -56,13 +56,16 @@
 
     @Override
     public IIndex getIndexInstance() {
-        if (index != null)
+        if (index != null) {
             return index;
+        }
         synchronized (lcManager) {
-            try {
-                index = lcManager.getIndex(resourcePath);
-            } catch (HyracksDataException e) {
-                return null;
+            if (index == null) {
+                try {
+                    index = lcManager.getIndex(resourcePath);
+                } catch (HyracksDataException e) {
+                    return null;
+                }
             }
         }
         return index;
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java
index 81beadd..56e9014 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyDataflowHelper.java
@@ -57,13 +57,16 @@
 
     @Override
     public IIndex getIndexInstance() {
-        if (index != null)
+        if (index != null) {
             return index;
+        }
         synchronized (lcManager) {
-            try {
-                index = lcManager.getIndex(resourcePath);
-            } catch (HyracksDataException e) {
-                return null;
+            if (index == null) {
+                try {
+                    index = lcManager.getIndex(resourcePath);
+                } catch (HyracksDataException e) {
+                    return null;
+                }
             }
         }
         return index;
diff --git a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java
index 272f970..6b8cf35 100644
--- a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java
+++ b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/VirtualBufferCache.java
@@ -96,7 +96,7 @@
         }
 
         for (int i = 0; i < buckets.length; i++) {
-            CacheBucket bucket = buckets[i];
+            final CacheBucket bucket = buckets[i];
             bucket.bucketLock.lock();
             try {
                 VirtualPage prev = null;
diff --git a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java
index 273aa16..39dcd4a 100644
--- a/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java
+++ b/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/inmemory/PartitionedInMemoryInvertedIndex.java
@@ -72,13 +72,16 @@
 
     public void updatePartitionIndexes(short numTokens) {
         partitionIndexLock.writeLock().lock();
-        if (numTokens < minPartitionIndex) {
-            minPartitionIndex = numTokens;
+        try {
+            if (numTokens < minPartitionIndex) {
+                minPartitionIndex = numTokens;
+            }
+            if (numTokens > maxPartitionIndex) {
+                maxPartitionIndex = numTokens;
+            }
+        } finally {
+            partitionIndexLock.writeLock().unlock();
         }
-        if (numTokens > maxPartitionIndex) {
-            maxPartitionIndex = numTokens;
-        }
-        partitionIndexLock.writeLock().unlock();
     }
 
     @Override
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java
index 6f1c34a..48cc476 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeDataflowHelper.java
@@ -72,13 +72,16 @@
 
     @Override
     public IIndex getIndexInstance() {
-        if (index != null)
+        if (index != null) {
             return index;
+        }
         synchronized (lcManager) {
-            try {
-                index = lcManager.getIndex(resourcePath);
-            } catch (HyracksDataException e) {
-                return null;
+            if (index == null) {
+                try {
+                    index = lcManager.getIndex(resourcePath);
+                } catch (HyracksDataException e) {
+                    return null;
+                }
             }
         }
         return index;
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
index d5257fe..c8f05c2 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTreeAbstractCursor.java
@@ -67,7 +67,7 @@
 
     public LSMRTreeAbstractCursor(ILSMIndexOperationContext opCtx) {
         this.opCtx = opCtx;
-        btreeRangePredicate = new RangePredicate(null, null, true, true, btreeCmp, btreeCmp);
+        btreeRangePredicate = new RangePredicate(null, null, true, true, null, null);
     }
 
     public RTreeSearchCursor getCursor(int cursorIndex) {
diff --git a/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java b/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java
index f62ae27..2f372e2 100644
--- a/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java
+++ b/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/linearize/ZCurveIntComparator.java
@@ -21,7 +21,6 @@
 import org.apache.hyracks.api.dataflow.value.ILinearizeComparator;
 import org.apache.hyracks.data.std.primitive.DoublePointable;
 import org.apache.hyracks.data.std.primitive.IntegerPointable;
-import org.apache.hyracks.dataflow.common.data.marshalling.IntegerSerializerDeserializer;
 import org.apache.hyracks.storage.am.common.ophelpers.DoubleArrayList;
 
 /*
@@ -48,7 +47,7 @@
     }
 
     private void resetStateMachine() {
-        stepsize = Integer.MAX_VALUE / 2;
+        stepsize = Integer.MAX_VALUE / 2.0f;
         bounds = new double[dim];
         boundsStack.clear();
     }
diff --git a/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java b/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java
index 75adfc9..27d0423 100644
--- a/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java
+++ b/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/buffercache/BufferCache.java
@@ -448,7 +448,7 @@
         buffer.append("cpid -> [fileId:pageId, pinCount, valid/invalid, confiscated/physical, dirty/clean]");
         int nCachedPages = 0;
         for (int i = 0; i < pageMap.length; ++i) {
-            CacheBucket cb = pageMap[i];
+            final CacheBucket cb = pageMap[i];
             cb.bucketLock.lock();
             try {
                 CachedPage cp = cb.cachedPage;
@@ -786,7 +786,7 @@
 
     private void sweepAndFlush(int fileId, boolean flushDirtyPages) throws HyracksDataException {
         for (int i = 0; i < pageMap.length; ++i) {
-            CacheBucket bucket = pageMap[i];
+            final CacheBucket bucket = pageMap[i];
             bucket.bucketLock.lock();
             try {
                 CachedPage prev = bucket.cachedPage;
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/util/MathUtil.java b/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/MathUtil.java
similarity index 92%
rename from hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/util/MathUtil.java
rename to hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/MathUtil.java
index ebdeeef..2b157e4 100644
--- a/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/util/MathUtil.java
+++ b/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/MathUtil.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.hyracks.dataflow.std.util;
+package org.apache.hyracks.util;
 
 public class MathUtil {
     /**
@@ -51,4 +51,8 @@
 
         return log + (n >>> 1);
     }
+
+    public static int stripSignBit(int n) {
+        return n & 0x7fffffff;
+    }
 }
diff --git a/hyracks/hyracks-dataflow-std/src/test/java/org/apache/hyracks/dataflow/std/util/MathTest.java b/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/MathTest.java
similarity index 96%
rename from hyracks/hyracks-dataflow-std/src/test/java/org/apache/hyracks/dataflow/std/util/MathTest.java
rename to hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/MathTest.java
index 3c8af9f..c3443c8 100644
--- a/hyracks/hyracks-dataflow-std/src/test/java/org/apache/hyracks/dataflow/std/util/MathTest.java
+++ b/hyracks/hyracks-util/src/test/java/org/apache/hyracks/util/MathTest.java
@@ -17,14 +17,14 @@
  * under the License.
  */
 
-package org.apache.hyracks.dataflow.std.util;
-
-import static org.junit.Assert.assertTrue;
+package org.apache.hyracks.util;
 
 import java.util.Random;
 
 import org.junit.Test;
 
+import static org.junit.Assert.assertTrue;
+
 public class MathTest {
 
     @Test

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 3
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>

Change in hyracks[master]: More Coverity Fixes

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: More Coverity Fixes
......................................................................


Patch Set 2: Verified+1

Build Successful 

https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/863/ : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/661
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0f63f7fb75b1ac8ffc1fc1d70e66bb19b788fe8e
Gerrit-PatchSet: 2
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Ian Maxon <im...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mi...@couchbase.com>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No