You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/04/20 08:39:32 UTC

[25/71] [abbrv] ignite git commit: ignite-4982 Fixed GridIntList.

ignite-4982 Fixed GridIntList.


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

Branch: refs/heads/ignite-4535
Commit: d60cf53bbfae162ac96ec1525bcd1772b8249a79
Parents: 58a8cb2
Author: Konstantin Dudkov <kd...@ya.ru>
Authored: Tue Apr 18 16:50:16 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Apr 18 16:50:16 2017 +0300

----------------------------------------------------------------------
 .../communication/GridIoMessageFactory.java     |   8 +-
 .../ignite/internal/util/GridIntList.java       |   5 +-
 ...ClientWriteBehindStoreNonCoalescingTest.java |  13 +-
 .../testsuites/IgniteUtilSelfTestSuite.java     |   2 +
 .../apache/ignite/util/GridIntListSelfTest.java | 153 +++++++++++++++++++
 5 files changed, 167 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d60cf53b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index e1c9511..b972a31 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@ -36,7 +36,6 @@ import org.apache.ignite.internal.managers.eventstorage.GridEventStorageMessage;
 import org.apache.ignite.internal.pagemem.snapshot.SnapshotFinishedMessage;
 import org.apache.ignite.internal.pagemem.snapshot.SnapshotProgressMessage;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
-import org.apache.ignite.internal.processors.cache.GridChangeGlobalStateMessageResponse;
 import org.apache.ignite.internal.processors.cache.CacheEntryInfoCollection;
 import org.apache.ignite.internal.processors.cache.CacheEntryPredicateContainsValue;
 import org.apache.ignite.internal.processors.cache.CacheEntrySerializablePredicate;
@@ -46,6 +45,7 @@ import org.apache.ignite.internal.processors.cache.CacheObjectByteArrayImpl;
 import org.apache.ignite.internal.processors.cache.CacheObjectImpl;
 import org.apache.ignite.internal.processors.cache.GridCacheEntryInfo;
 import org.apache.ignite.internal.processors.cache.GridCacheReturn;
+import org.apache.ignite.internal.processors.cache.GridChangeGlobalStateMessageResponse;
 import org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl;
 import org.apache.ignite.internal.processors.cache.binary.MetadataRequestMessage;
 import org.apache.ignite.internal.processors.cache.binary.MetadataResponseMessage;
@@ -144,6 +144,7 @@ import org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQuery
 import org.apache.ignite.internal.processors.rest.handlers.task.GridTaskResultRequest;
 import org.apache.ignite.internal.processors.rest.handlers.task.GridTaskResultResponse;
 import org.apache.ignite.internal.util.GridByteArrayList;
+import org.apache.ignite.internal.util.GridIntList;
 import org.apache.ignite.internal.util.GridLongList;
 import org.apache.ignite.internal.util.GridMessageCollection;
 import org.apache.ignite.internal.util.UUIDCollectionMessage;
@@ -176,6 +177,11 @@ public class GridIoMessageFactory implements MessageFactory {
         Message msg = null;
 
         switch (type) {
+            case -52:
+                msg = new GridIntList();
+
+                break;
+
             case -51:
                 msg = new NearCacheUpdates();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d60cf53b/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java
index 1de8106..968b88e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridIntList.java
@@ -132,8 +132,7 @@ public class GridIntList implements Message, Externalizable {
 
         for (int i = 0; i < idx; i++) {
             int element  = arr[i];
-            int elementHash = (int)(element ^ (element >>> 32));
-            res = 31 * res + elementHash;
+            res = 31 * res + element;
         }
 
         return res;
@@ -577,7 +576,7 @@ public class GridIntList implements Message, Externalizable {
 
     /** {@inheritDoc} */
     @Override public short directType() {
-        return 85;
+        return -52;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/d60cf53b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/store/IgnteCacheClientWriteBehindStoreNonCoalescingTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/store/IgnteCacheClientWriteBehindStoreNonCoalescingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/store/IgnteCacheClientWriteBehindStoreNonCoalescingTest.java
index 8ea109d..1d44a98 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/store/IgnteCacheClientWriteBehindStoreNonCoalescingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/store/IgnteCacheClientWriteBehindStoreNonCoalescingTest.java
@@ -29,7 +29,6 @@ import javax.cache.processor.EntryProcessorException;
 import javax.cache.processor.MutableEntry;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.cache.CacheAtomicWriteOrderMode;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.store.CacheStore;
@@ -40,7 +39,6 @@ import org.apache.ignite.internal.processors.cache.IgniteCacheAbstractTest;
 import org.apache.ignite.lang.IgniteBiInClosure;
 import org.apache.ignite.lang.IgniteFuture;
 
-import static org.apache.ignite.cache.CacheAtomicWriteOrderMode.CLOCK;
 import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
 
 /**
@@ -63,11 +61,6 @@ public class IgnteCacheClientWriteBehindStoreNonCoalescingTest extends IgniteCac
     }
 
     /** {@inheritDoc} */
-    @Override protected CacheAtomicWriteOrderMode atomicWriteOrderMode() {
-        return CLOCK;
-    }
-
-    /** {@inheritDoc} */
     @Override protected NearCacheConfiguration nearConfiguration() {
         return null;
     }
@@ -155,10 +148,10 @@ public class IgnteCacheClientWriteBehindStoreNonCoalescingTest extends IgniteCac
 
         /** {@inheritDoc} */
         @Override public void write(Cache.Entry<? extends Object, ? extends Object> entry) {
-            Object oldValue = storeMap.put(entry.getKey(), entry.getValue());
+            Object oldVal = storeMap.put(entry.getKey(), entry.getValue());
 
-            if (oldValue instanceof Integer && entry.getValue() instanceof Integer) {
-                Integer oldInt = (Integer)oldValue;
+            if (oldVal instanceof Integer && entry.getValue() instanceof Integer) {
+                Integer oldInt = (Integer) oldVal;
                 Integer newInt = (Integer)entry.getValue();
 
                 assertTrue(

http://git-wip-us.apache.org/repos/asf/ignite/blob/d60cf53b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteUtilSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteUtilSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteUtilSelfTestSuite.java
index 066f8ea..64a94fd 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteUtilSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteUtilSelfTestSuite.java
@@ -39,6 +39,7 @@ import org.apache.ignite.spi.discovery.ClusterMetricsSnapshotSerializeSelfTest;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.thread.GridThreadPoolExecutorServiceSelfTest;
 import org.apache.ignite.thread.IgniteThreadPoolSizeTest;
+import org.apache.ignite.util.GridIntListSelfTest;
 import org.apache.ignite.util.GridLongListSelfTest;
 import org.apache.ignite.util.GridMessageCollectionTest;
 import org.apache.ignite.util.GridQueueSelfTest;
@@ -76,6 +77,7 @@ public class IgniteUtilSelfTestSuite extends TestSuite {
         suite.addTestSuite(GridByteArrayListSelfTest.class);
         suite.addTestSuite(GridMBeanSelfTest.class);
         suite.addTestSuite(GridLongListSelfTest.class);
+        suite.addTestSuite(GridIntListSelfTest.class);
         suite.addTestSuite(GridArraysSelfTest.class);
         suite.addTestSuite(GridCacheUtilsSelfTest.class);
         suite.addTestSuite(IgniteExceptionRegistrySelfTest.class);

http://git-wip-us.apache.org/repos/asf/ignite/blob/d60cf53b/modules/core/src/test/java/org/apache/ignite/util/GridIntListSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/util/GridIntListSelfTest.java b/modules/core/src/test/java/org/apache/ignite/util/GridIntListSelfTest.java
new file mode 100644
index 0000000..cc48fa8
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/util/GridIntListSelfTest.java
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.util;
+
+import junit.framework.TestCase;
+import org.apache.ignite.internal.util.GridIntList;
+
+import static org.apache.ignite.internal.util.GridIntList.asList;
+
+/**
+ *
+ */
+public class GridIntListSelfTest extends TestCase {
+    /**
+     * @throws Exception If failed.
+     */
+    @SuppressWarnings("ZeroLengthArrayAllocation")
+    public void testCopyWithout() throws Exception {
+        assertCopy(
+            new GridIntList(new int[] {}),
+            new GridIntList(new int[] {}));
+
+        assertCopy(
+            new GridIntList(new int[] {}),
+            new GridIntList(new int[] {1}));
+
+        assertCopy(
+            new GridIntList(new int[] {1}),
+            new GridIntList(new int[] {}));
+
+        assertCopy(
+            new GridIntList(new int[] {1, 2, 3}),
+            new GridIntList(new int[] {4, 5, 6}));
+
+        assertCopy(
+            new GridIntList(new int[] {1, 2, 3}),
+            new GridIntList(new int[] {1, 2, 3}));
+
+        assertCopy(
+            new GridIntList(new int[] {1, 2, 3, 4, 5, 1}),
+            new GridIntList(new int[] {1, 1}));
+
+        assertCopy(
+            new GridIntList(new int[] {1, 1, 1, 2, 3, 4, 5, 1, 1, 1}),
+            new GridIntList(new int[] {1, 1}));
+
+        assertCopy(
+            new GridIntList(new int[] {1, 2, 3}),
+            new GridIntList(new int[] {1, 1, 2, 2, 3, 3}));
+    }
+
+    /**
+     *
+     */
+    public void testTruncate() {
+        GridIntList list = asList(1, 2, 3, 4, 5, 6, 7, 8);
+
+        list.truncate(4, true);
+
+        assertEquals(asList(1, 2, 3, 4), list);
+
+        list.truncate(2, false);
+
+        assertEquals(asList(3, 4), list);
+
+        list = new GridIntList();
+
+        list.truncate(0, false);
+        list.truncate(0, true);
+
+        assertEquals(new GridIntList(), list);
+    }
+
+    /**
+     * Assert {@link GridIntList#copyWithout(GridIntList)} on given lists.
+     *
+     * @param lst Source lists.
+     * @param rmv Exclude list.
+     */
+    private void assertCopy(GridIntList lst, GridIntList rmv) {
+        GridIntList res = lst.copyWithout(rmv);
+
+        for (int i = 0; i < lst.size(); i++) {
+            int v = lst.get(i);
+
+            if (rmv.contains(v))
+                assertFalse(res.contains(v));
+            else
+                assertTrue(res.contains(v));
+        }
+    }
+
+    /**
+     *
+     */
+    public void testRemove() {
+        GridIntList list = asList(1, 2, 3, 4, 5, 6);
+
+        assertEquals(2, list.removeValue(0, 3));
+        assertEquals(asList(1, 2, 4, 5, 6), list);
+
+        assertEquals(-1, list.removeValue(1, 1));
+        assertEquals(-1, list.removeValue(0, 3));
+
+        assertEquals(4, list.removeValue(0, 6));
+        assertEquals(asList(1, 2, 4, 5), list);
+
+        assertEquals(2, list.removeIndex(1));
+        assertEquals(asList(1, 4, 5), list);
+
+        assertEquals(1, list.removeIndex(0));
+        assertEquals(asList(4, 5), list);
+    }
+
+    /**
+     *
+     */
+    public void testSort() {
+        assertEquals(new GridIntList(), new GridIntList().sort());
+        assertEquals(asList(1), asList(1).sort());
+        assertEquals(asList(1, 2), asList(2, 1).sort());
+        assertEquals(asList(1, 2, 3), asList(2, 1, 3).sort());
+
+        GridIntList list = new GridIntList();
+
+        list.add(4);
+        list.add(3);
+        list.add(5);
+        list.add(1);
+
+        assertEquals(asList(1, 3, 4, 5), list.sort());
+
+        list.add(0);
+
+        assertEquals(asList(1, 3, 4, 5, 0), list);
+        assertEquals(asList(0, 1, 3, 4, 5), list.sort());
+    }
+}